在一个表单中,处理多个按钮,在网上看了一些资料,然后测试了一下还是通过了.
1.entry.jsp表单文件内容:
<html:form action="/Province/lookup" method="post">
<html:submit property="method" value="<bean:message key="label.query" />">
</html:submit>
<html:submit property="method" value="<bean:message key="label.back" />">
</html:submit>
</html:form>
两个跳转的页面,one.jsp 和 two.jsp页面.
2.application.properties文件的定义的内容.
label.query=Query
label.back=Back
3.struts-configs.xm配置文件内容.
<action path="/Province/lookup" parameter="method" type="cn.com.crm.ProvinceLookupDispatch"
scope="request" name="provinceForm" validate="false" input="/manager.Province.entry">
<forward name="query" path="manager.Province.one"/>
<forward name="back" path="manager.Province.two"/>
</action>
4.由于采用Titles模板和Tiles组件来构建复杂的页面,所以要文件titles-def.xml做这个定义,不然的话,会报错(does not start with a "/" character).
<definition extends="doc.mainLayout" name="manager.Province.two">
<put name="title" value="Province two" />
<put name="body" value="/manager/Province/two.jsp" />
</definition>
<definition extends="doc.mainLayout" name="manager.Province.one">
<put name="title" value="Province one" />
<put name="body" value="/manager/Province/one.jsp" />
</definition>
5.Action处理类文件.
package cn.com.crm;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.LookupDispatchAction;
public class ProvinceLookupDispatch extends LookupDispatchAction {
protected Map getKeyMethodMap() {
Map map = new HashMap();
map.put("label.query", "query");
map.put("label.back", "back");
return map;
}
public ActionForward query(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
return mapping.findForward("query");
}
public ActionForward back(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
return mapping.findForward("back");
}
}
6.debug跟踪一下,发现,当点击query按钮时,会调用query()方法来调用.
7.具体的用法还要学习一下,只是暂时可能调试,能够出结果.