SSH项目Action在struts.xml中配置,在线跪求等大侠的经验之谈大家好,想请教一个问题是关于struts2的Action
SSH项目Action在struts.xml中配置,在线跪求等大侠的经验之谈
大家好,想请教一个问题是关于struts2的Action在struts.xml中的配置,我说的配置不是说怎么在struts.xml配置方法,我是想问大家做项目的时候都是怎么配置的,小弟是没有struts2的项目,所以现在希望大家可以经验之谈,这问题我也想百度下,但百度出来的都是strus.xml详细配置,都不是我想要的。
用struts2的时候我们调用对于action中的方法都是actioName!method,我现在希望可以把那个“!”去掉,希望地址栏只是个普通的地址不要搞“特殊”,所以我想到两个方法:
一、假设一个action中拥有4个自定义方法,覆写ActionSupport的execute(),页面用ActionName.action?method="方法名字",execute()里面加if()来判断具体到那个自定义方法;
方法一例子
Java codeexecute(){if(mehotd=="insert"){insert();}else if(method=="list"){list();}
二、假设一个action中拥有4个自定义方法,原本在struts.xml中是4个自定义方法共享一个action,我就将其分成一个自定义方法就对于一个action;
方法二例子
Java code<action name="Adminlist" class="com.devt2.action.AdminAction" method="list">省略内容</action><action name="Admininsert" class="com.devt2.action.AdminAction" method="insert">省略内容</action>
方法三、方法四、方法N,小弟愚笨只能想到两种方法,希望大家不吝赐教,感谢感谢
[解决办法]用*符号。
比如配置如下
<action name="manage_*" class="com.xxx.struts2.ProjectManageAction" method="{1}" >
<result name="viewBuilding">/WEB-INF/Page/ClientProject/viewBuilding.jsp</result>
<result name="viewBuilding2">/WEB-INF/Page/ClientProject/viewBuilding2.jsp</result>
</action>
ProjectManageAction代码内如下
@Controller("/project/manage_*")
public String viewBuildingUI() throws Exception{
}
public String viewBuilding2UI() throws Exception{
}
[解决办法]<package name="project" namespace="/project" extends="base">
<action name="manage_*" class="com.xxxx.struts2.ProjectManageAction" method="{1}" >
<result name="viewBuilding">/WEB-INF/Page/ClientProject/viewBuilding.jsp</result>
</action>
<result name="viewBuilding2">/WEB-INF/Page/ClientProject/viewBuilding2.jsp</result>
</action>
</package>
一般都用通配符*的
调用的时候project/manage_viewBuildingUI.do
[解决办法] 果断顶 通配方式。lz看看通配方式吧
[解决办法]使用通配符,这样配置文件降到最少
XML code<struts> <package name="comm" namespace="/manager/comm" extends="global-struts"> <action name="*_*" class="{1}" method="{2}"> <result name="topicList">/form/manager/comm/topic_list.jsp</result> <result name="editTopic">/form/manager/comm/topic_add_edit.jsp</result> <result name="repleyList">/form/manager/comm/repley_list.jsp</result> <result name="addRepley">/form/manager/comm/repley_add_edit.jsp</result> <result name="editRepley">/form/manager/comm/repley_add_edit.jsp</result> </action> </package></struts>
[解决办法]
搜搜DMI模式吧也就是通配 哈哈…………
[解决办法]
如果你不怕麻烦,使用通配符也可以
给以小例子
Java code<form action="Login_register" method="post"> 用户名: <input type="text" name="name"> <br /> 密码: <input type="password" name="pass"> <br /> <input type="submit" value="登录"> </form>
[解决办法]
[解决办法]
其实我觉得,LZ的第一种方法就很不错啊,现在好多大公司都有自己的编程规范的,我们公司用的就是LZ的第一种方法,这种方法直观,一眼看过去就知道是啥意思,方便后来程序员阅读
[解决办法]