struts复习笔记1

1 访问actionform的方法:从request或session对象中直接取出

         LoginForm form=(LoginForm)requeset.getAttribute(“loginActionForm”);

2使用action的execute()方法直接使用或赋值。

3 所以的action都是servlet可以使用servlet的所有方法,可以获得session

         HttpSession session=request.getSession();

         在action中向request或session中添加属性,在jsp页面上获得属性。

4动态表单DynaActionForm减少actonform的使用不需要创建具体的类,只要在配置文件中配置出虚拟的actionform类即可。

         <form-beans>

                   <form-bean name=”loginForm” type=”org.apache.struts.action.DynaActionForm”>

                            <form-property name=”username” type=”java.lang.String”/>

                            <form-property name=”password” type=”java.lang.String”/>

                            <form-property name=”actionClass” type=”java.lang.String”/>

</form-bean>

</form-beans>

使用动态表单时它将属性保存在hashmap对象中提供get()set()方法访问属性

         String username=(String)form.get(“username”);

DynaValidatorForm 是DynaActionForm的子类提供动态actonform和输入表单验证功能。

         type=”org.apache.struts.validator.DynaValidatorForm”

5 uri统一资源标记符是url的父类,应用上基本上雷同于url

6struts-config.xml文件中的所有path属性既可以指向jsp页面也可以指向另一个action

请求的方式是get请求在actionforward中:

                                     Path=”/modify.do?method=edit&id=10”

7在struts中所有的action最好都要有forward对象的跳转,在struts-config.xml中必须要要forward元素并且添加属性才能实现成功跳转。决定不能使用return super.xxxx();这样不能完成跳转。

8jsp页面可以有这样的实现机制,多个form公用相同的表单元素,text,radio,password,select,textarea等:

         <body>

    <form action="insert.do?method=sig" method="post">

        <input type="text" name="userName"/><br>

        <input type="text" name="password"/><br>

        <input type="submit" value="sigsubmit"/><br>

    </form>

    <form action="insert.do?method=mul" method="post">

        <input type="submit" value="mulsubmit"/><br>

    </form>

  

  </body>

DispatchAction类是Action类的子类,继承DispatchAction类可以不用重新execute方法,添加具有实际功能的方法add,delete,find,update等可以在同一个action中实现一组紧密相连的业务功能。

    public class InsertAction extends DispatchAction{

 

   

    public ActionForward sig(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

       // TODO Auto-generated method stub

       System.out.println("===sig is execute===");

       return mapping.findForward("result");

    }

    public ActionForward mul(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

       // TODO Auto-generated method stub

       System.out.println("====mul is execute==");

       return mapping.findForward("result");

    }

   

 

}

1 DynaActionForm动态表单验证中表单信息存在在对应的map对象中可以使用el表达式获得:age:${dynaForm.map.age }<br>

   username:${dynaForm.map.username }<br>获得表单dynaForm中的属性名username和age

2Action类实际上就是一个servlet,所以可以使用servlet的数据处理方式,可以使用会话,请求域属性传递属性信息。

 获得会话:HttpSession session=request.getSession(true);

                     Session.removeAttribute(String);

                     Session.setAttribute(String,Stirng);

原文地址:https://www.cnblogs.com/moonfans/p/2715449.html