建立第一个struts项目,RequestProcessor类,PlugIn,error(关于跳转等问题)

 

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.代码   代码下载

 

 

 

发布了0 篇原创文章 · 获赞 0 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章