首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

SSH项目Action在struts.xml中配备,在线跪求等大侠的经验之谈

2011-12-06 
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 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模式吧也就是通配 哈哈…………

[解决办法]
如果你不怕麻烦,使用通配符也可以
给以小例子

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>
[解决办法]
探讨

<package name="project" namespace="/project" extends="base">
<action name="manage_*" class="com.xxxx.struts2.ProjectManageAction" method="{1}" >
<result name="viewBuilding">/WEB-I……

[解决办法]
其实我觉得,LZ的第一种方法就很不错啊,现在好多大公司都有自己的编程规范的,我们公司用的就是LZ的第一种方法,这种方法直观,一眼看过去就知道是啥意思,方便后来程序员阅读
[解决办法]
探讨
使用通配符,这样配置文件降到最少

XML code
<struts>
<package name="comm" namespace="/manager/comm" extends="global-struts">
<action name="*_*" class="{1}" method="{2}">
<result name="top……

热点排行