闲扯struts2-A

思路:   action----------------->配置xml----------------------->前台view(------------------->validation后面写)

 

纯属一家之谈:使用的是struts2.1.6

 

公司一直用的是struts1,1用的是相当顺手,但是一里面也有一些问题,比如用struts自己的form,里面有date类型,还要让人转换麻烦的很!但是问题还是能解决的,呵呵:这几天闲来无事,就看看struts2,它不就是集成webwork的核心吗,还有些像jsf,也像struts1里面的那个depchAction(一个action里面多个方法,我的这个名字肯定错了)!struts2可以在一个action里面完成这个包里面的所有功能(也就是传说中经常用的增删改查),并且可以在这里把对象放进来,也可以放属性,我还是喜欢对象!然后从页面指定指定这个对象的属性就可以了!

这样action就操作完了!但你记住struts版本不同对应不同的xwork,不然会异常的!2.0跟2.1就不是亲戚!~

 

 

下来配置了,这个会出现很多莫名奇妙的问题,第一就是struts2到底支持通配符 * 不,这是考虑到以后项目中可能有很多struts-user.xml,struts-manager.xml,那么我在web.xml里面配置成如下这样,可以不?

<filter>
        <filter-name>Struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
        <init-param>
            <param-name>config</param-name>
            <param-value>
                struts-default.xml,
                struts-plugin.xml,

                struts.xml,
               struts-*.xml
               
            </param-value>
        </init-param>
    </filter>

我就觉得这样很烦,一是这样好像不通配,二是这样的话在WEB-INF下会有很多的xml文件,因为你能把struts放在这,你集成spring和hibernate的时候,xml肯定也放在这了,这样我感觉不好管理,所以我把他们放在专门的一个config文件里面建四个包:springXML,strutsXML,validation(这个是验证的,有人喜欢跟class文件放在一起)和一个属性文件!以后我就管理这几个文件里面的xml就可以了!这是一个问题。

在一个问题就是很多人开始写helloworld的时候,是看网上写的的,运行什么都没有问题,一旦加了自己的包就会找不到action的事件发生,很是郁闷,我在这点点行了,认真看看底下红色字体

<package name="master" extends="struts-default" namespace="/master">
        <action name="master" class="masterAction" method="save" >  蓝色字体是我的spring bean 不要去管!
               <result name="success">/HelloWorld.jsp</result>
               <result name="error">/error.jsp</result>
        </action>
    </package>

里面的name,extends,namespece都代表什么意思,底下为页面部分,为什么要这么写!

 

<s:form action="master" method="post" namespace="/master">
    <s:textfield name="master.name" label="姓名"/>   蓝色字体是我action里面注入的对象属性名!
    <s:submit/>
</s:form>

 

下来是truts.xml 里面的东西 eg:

这三个是什么意思,明白不,为什么第一行的value是false,你改成true看看有异常没有,呵呵!

<constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="false" />
    <constant name="struts.i18n.encoding" value="GBK" />

在这个文件里面,可以include 文件,你知道这里能用通配符不?继续瞎侃:

 

<struts>
    <!-- 开启使用开发模式,详细错误提示 -->
    <!-- <constant name="struts.devMode" value="true"/>-->      struts2的一个bug在这,有的说是tomcat6.0以上有空格!
    <!-- 指定每次请求到达,重新加载资源文件 -->
    <!-- <constant name="struts.i18n.reload" value="true"/>-->
    <!-- 指定每次配置文件更改后,自动重新加载 -->
    <!-- <constant name="struts.configuration.xml.reload" value="true"/>-->
    <!-- 指定XSLT Result使用样式表缓存 -->
    <!-- <constant name="struts.xslt.nocache" value="true"/>-->
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="false" />
    <constant name="struts.i18n.encoding" value="GBK" />
   
    <include file="strutsXML/struts-*.xml"></include>       原来可以这样写
</struts>

 

 

页面什么都不想说了,由于struts2支持什么freemarker,jsp,velocity什么的,自己试试去,注意的就是你把s:form 元素弄不好,就找不到action!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值