日期:2014-05-17  浏览次数:20663 次

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 code

execute(){
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模式吧也就是通配 哈哈…………