1、 jsp可以include Action <jsp:include page="welcome.do"/><br>
struts.xml ::::::
<form-beans>
<form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="username" type="java.lang.String"/>
<form-property name="pass" type="java.lang.String"/>
</form-bean>
</form-beans>
<action-mappings>
<action path="/welcome"
type="org.apache.struts.actions.IncludeAction"
parameter="/welcome.jsp"/>
</action-mappings>
------------------------------------------------------------------------------------------------
2、LookupDispatchAction继承DispatchAction, 用于对同一个页面上的多个submit按钮进行不同的响应。其原理是首先用MessageResource将按钮的文本和ResKey相关联,例如button.save=保存;然后再复写getKeyMethodMap(), 将ResKey和MethodName对应起来.分别点击不同submit会跳转到两个不同的页面one.jsp,two.jsp
JSP
<html:submit property="method">
<bean:message key="button.add"/>
</html:submit>
<html:submit property="method">
<bean:message key="button.modify"/>
</html:submit>
struts.xml ::::::
<form-beans>
<form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="username" type="java.lang.String"/>
<form-property name="pass" type="java.lang.String"/>
</form-bean>
</form-beans>
<action-mappings>
<action path="/welcome"
type="org.apache.struts.actions.IncludeAction"
parameter="/welcome.jsp"/>
</action-mappings>
Action.java
protected Map getKeyMethodMap()
{
Map map = new HashMap();
map.put("button.add", "add");
map.put("button.modify", "modify");
return map;
}
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws Exception
{
System.out.println("增加");
request.setAttribute("method" , "增加");
return mapping.findForward("success");
}
public ActionForward modify(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws Exception
{
System.out.println("修改");
request.setAttribute("method" , "修改");
return mapping.findForward("success");
}
--------------------------------------------------------
3、多按钮,分别执行自己的action
JSP
<input type="submit" value='<bean:message key="button.add"/>' onClick="document.loginForm.action='add.do'"/>
<input type="submit" value='<bean:message key="button.modify"/>' onClick="document.loginForm.action='modify.do'"/>
struts.xml
<action path="/add" type="lee.LoginAction" name="loginForm"
scope="request" validate="true" input="/login.jsp" parameter="add">
<forward name="success" path="/welcome.jsp"/>
</action>
<action path="/modify" type="lee.LoginAction" name="loginForm"
scope="request" validate="true" input="/login.jsp" parameter="modify">
<forward name="success" path="/welcome.jsp"/>
</action>
--------------------------------------------------------
4、RequestProcesso将客户请求转交给合适的 处理器进行处理
<controller processorClass="lee.MyRequestProcessor" />
--------------------------------------------------------
5、strutsException
<global-exceptions>
<exception key="test.exceptionA"
type="lee.exception.ExceptionTestA"
scope="request"
path="/error.jsp"/>
<exception key="test.unknown"
type="java.lang.Exception"
scope="request"
path="/error.jsp"/>
</global-exceptions>
<action path="/processLogin"
type="lee.LoginAction"
name="loginForm"
scope="request"
validate="true"
input="/login.jsp">
<exception key="test.exceptionB" type="lee.exception.ExceptionTestB" path="/error.jsp"/>
<forward name="failure" path="/failure.jsp"/>
<forward name="success" path="/success.jsp"/>
</action>