在上一章中做了新闻的最基本的CRUD以及环境的基本搭建和配置,本章我们集成页面以及添加高级查询和分页、以及图片上传等基本的技术来继续进行该项目。
1 页面整合
1)拷贝静态资源
2)修改样式、图片等的路径
3)首先我们观察index.html文件,发现它使用了frameset框架集,大家可以看看下面的主要内容,分析跳转的过程:
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>