Struts练习
1.主要内容:
1.在项目中如何用struts
2.重写RequestProcessor类的processPreprocess(rq,res)方法
3.如何实现插件PlugIn
4.读属性文件//在MyPlugIn里用到
5.错误信息
6.RequestProcessor类和plugIn 示例项目struts02
错误信息 示例项目struts_error
2.详细实现(RequestProcessor类和plugIn示例在struts02下)
a.
b. struts实现登录
1.在src加入service包(里面加入1个类(LoginService),实现登录验证)
2.在action包下LoginAction内
3.以上就完成了,现在部署,并在页面上输入路径访问 http://localhost:8080/struts02/login.jsp
c. 加MyRequestProcessor类(在action包下加,并继承RequestProcessor类)
1.在此类中重写processPreprocess(rq,res)方法
2.在struts-config里 <controller processorClass="action.MyRequestProcessor"></controller>
d.PlugIn的练习
1.新建一类MyPlugIn(在action包下,实现PlugIn接口) 写一个属性,和在init方法里,把data放入application
2.在struts-config.xml里新加plug-in节点(注意顺序,一定要是在message-resources节点后)
3.然后,在页面里就可以得到值:${applicationScope.data}
4.值保存到属性文件
1.struts-config.xml->plug-in节点下set-property的value设为"ApplicationResources.properties"
2.在ApplicationResources.properties 写tip1=This is default value
3.在action里加一个类Env,是一个通用类,专门用来读属性文件的(可以直接拷就可以了)
4.在MyPlugIn的init方法里
Env env=Env.getInstance(data);
arg0.getServletContext().setAttribute("pro", env);
//把env对象保存到application里,比如:以后在页面去值${applicationScope.env.tip1}
其中,data是MyPlugIn里的属性
5.在页面success.jsp页面加${applicationScope.env.tip1},运行看效果
3.这次犯的小错误
1.processPreprocess书写 浪费了时间(浪费时间:15分钟)
2.正确写法:${applicationScope.data}(正确) 错误写法:${application.data}(浪费时间:30分钟,郁闷)
4.error的运用(示例项目struts_error)
1.error可以放在3个地方
1.放在LoginForm的validate方法里
2.可以放在LoginAction中
3.在LoginAction里做异常处理的时候用(与2相同)
此段代码 说明了在业务逻辑出错的时候,如何用errors保存
5.总结:
1.RequestProcessor类的processPreprocess(rq,res)作用:
1.目的:在进入LoginAction之前,可以做些控制 //详细还待查资料
2. MyPlugIn extends PlugIn 作用:
1.流程:在Tomcat第一次启动的时候,通过struts-config里<plug-in>节点,
然后在MyPlugIn的init方法里,把data放进application里,
其中,在<plug-in>节点配置的时候,data属性的value值,可以使*.properties文件
3.error 在页面有<html:errors property="password"/>
1.流程:把ActionError存到ActionErrors里,然后保存到request里,
然后在页面用request.getAttribute("password")取值
6.代码 代码下载