news_flash新闻快讯项目 Chapter 2

时间:2022-01-29 11:53:53

在上一章中做了新闻的最基本的CRUD以及环境的基本搭建和配置,本章我们集成页面以及添加高级查询和分页、以及图片上传等基本的技术来继续进行该项目。

1 页面整合


1)拷贝静态资源
2)修改样式、图片等的路径
3)首先我们观察index.html文件,发现它使用了frameset框架集,大家可以看看下面的主要内容,分析跳转的过程:

news_flash新闻快讯项目 Chapter 2
system表示struts.xml中的包名称;main_top就是action的名称,因此我们需要一个action来处理这个main.html文件。
因此我们创建MainAction类,然后在application中实例化;

/**
* 处理主页面跳转以及业务逻辑的实现
*/

public class MainAction extends ActionSupport {
/**
* 跳转到index.html
* @return
* @throws Exception
*/

@Override
public String execute() throws Exception {
return SUCCESS;
}
//跳转到top.html
public String top(){
return "top";
}
//跳转到menu.html
public String menu(){
return "menu";
}
//跳转到main.html
public String main(){
return "main";
}
}

可以看到,方法名和返回值的名称是相同的,这是为了便利struts.xml中的书写。
4) 首先是登陆,登陆提交表单后,跳转到userAction,这个action来处理登陆信息。
之后跳转到mainAction,加载页面,包括菜单,主页面,以及顶部,从index.html可以看出。我们在struts.xml中配置相应的视图名称即可。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">


<struts>
<constant name="struts.devMode" value="true"></constant>
<!-- 不需要权限拦截器拦截的Action -->
<package name="default" namespace="/" extends="struts-default">
<!-- 如果userAction要做登录功能,要放在这个包里,不能被权限拦截器拦截 -->
<action name="user_*" class="userAction" method="{1}">
<result type="redirectAction">
<param name="namespace">/system</param>
<param name="actionName">main</param>
</result>
</action>
</package>
<!-- 需要权限拦截器拦截的Action -->
<package name="system" namespace="/system" extends="struts-default">
<!-- 如果Action交给spring创建,那这里class不用写全限定名,它跟applcationContext.xml里对应的bean的id保持一致 -->
<action name="main_*" class="mainAction" method="{1}">
<result>
/WEB-INF/views/index.html
</result>
<result name="{1}">
/WEB-INF/views/{1}.html
</result>
</action>
</package>
</struts>

我们再配置userAction,并且也完成实例化,处理登陆,这里只是作为跳转,具体登陆功能接下来完成
接下来完成测试,发现跳转正确。下面是userAction,以及实例化配置

public class UserAction extends ActionSupport{
@Override
public String execute() throws Exception {
return SUCCESS;
}
}
 <!--mainAction实例-->
<bean id="mainAction" class="cn.czg.core.web.action.MainAction">

</bean>
<!--userAction-->
<bean id="userAction" class="cn.czg.core.web.action.UserAction">

</bean>