本文主要是介绍当有多个同名的action可怎么办呢?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题引出:如果有好几个form的action都是regist,但是又希望对应不同的class,我们就可以设置不同的package来定义不同的namespace,这样当访问同名的action,只要namespace设置对了就可以正确访问到class,例子如下
struts.xml文件内容如下
<package name="default" namespace="/" extends="struts-default"><action name="regist" class="action.RegistOne"><result>/content/success.jsp</result></action></package><package name="one" namespace="/test1" extends="struts-default"><action name="regist" class="action.RegistTwo"><result>/content/success.jsp</result></action></package><package name="two" namespace="/test2" extends="struts-default"><action name="regist" class="action.RegistThree"><result>/content/success.jsp</result></action></package>
定义三个类RegistOne、RegistTwo、RegistThree,用来标识不同的class,内容都差不多,我就不都贴出来了
package action;import com.opensymphony.xwork2.ActionSupport;public class RegistOne extends ActionSupport {@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubSystem.out.println("这里是RegistOne");return super.execute();}
}
JSP文件这样写
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><body><s:form action="regist" namespace="/"><s:submit value="访问one"/></s:form><s:form action="regist" namespace="/test1"><s:submit value="访问two"/></s:form><s:form action="regist" namespace="/test2"><s:submit value="访问three"/></s:form></body>
</html>
这样当我们按第一个按钮的时候应该就可以访问到第一个class啦~
这篇关于当有多个同名的action可怎么办呢?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!