高级项目进行时14

来源:互联网 发布:网络教育专科 编辑:程序博客网 时间:2024/05/22 13:42

 1、 发现了一个document.all与document.getElementsByName("xxx")的问题

       document.all与document.getElementsByName()的区别  害我整整调试了近个把小时
 还是基础不好呀,
确实, 就单获得页面中的一个元素的话, document.all(name)与document.getElementsByName(name)确实一样, 它们的返回值都是objcect数组
   但是当要获取object数组的长度时就体现出差别来了,当name的元素只有1个时 document.all.name.lengthf返回undefined
   而document.getElementsByName("name")则会返回1

2、 异常: java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!
   是 参数数组的问题, 已解决。

3、 我想使用如下的方式在一个action中调用另外一个action:

               <result name="backsuccess" type="redirect">backSendedNews.action?goPage=1</result>

  这样子做试验成功, 但是这种方式只能跟一个参数, 如果跟多个参数如:

        <result name="backsuccess" type="redirect">backSendedNews.action?goPage=1;paramBack=110</result>

 其在action中被解析为: java.lang.NumberFormatException: For input string: "1;paramBack=110"

      也许你要说在多个参数之间使用&进行分割就行了, 但是.xml文件约束了不能使用&

 

   那么如何正确地跟多个参数呢?

  <!-- 删除后台 信息 -->
    <action name="deleteNews" class="deleteMsg" method="deleteNews">
      <result name="backsuccess" type="redirectAction">
         <param name="actionName">backSendedNews</param>
         <param name="param1">1</param>
         <param name="param2">110</param>
      </result>
      <result name="frontsuccess" type="redirect">lookAllNews.action?goPage=1;paramBack=0</result>
    </action>

这种方式是可以跟多个参数, 而且在action中也可以接收到这些参数的值, 但是假如在接收的action中没有这些param对应的name属性值的set方法的话就会抛出异常:

Unable to set parameter [param1] in result of type [org.apache.struts2.dispatcher.ServletActionRedirectResult]

——————————注意:

   还需要注意的是如果上述的type写成redirect的话那么则actionName后的action就需要添加.action后缀。

 感觉采取这种通过action去调用action的删除方式, 删除还不会刷新页面, 真是一举两得呀。 

  一个更为具体的例子:

   <action name...>
  <result name="aaa" type="redirectAction">
    <param name="actionName">action11 </param>
    <param name="namespace">/namespace11 </param>
    <param name="param1">aa1 </param>
    <param name="param2">aa2 </param>
    <param name="param3">aa3 </param>
  </result>
</action>

  生成的url是:/namespace1/action11.action?param1=aa1&param2...

—————————————————————————————————————————————————————————


实现也不只有一种,你也可以这样实现:

<package name="public" extends="struts-default">
    <!-- Chain creatAccount to login, using the default parameter -->
    <action name="createAccount" class="...">
        <result type="chain">login </result>
    </action>

    <action name="login" class="...">
        <!-- Chain to another namespace -->
        <result type="chain">
            <param name="actionName">dashboard </param>
            <param name="namespace">/secure </param>
        </result>
    </action>
</package>

 

原创粉丝点击