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);