关闭

struts2 的一个action中配置多个result input

标签: actionstrutsimportstringlogindelete
6528人阅读 评论(1) 收藏 举报
分类:

主题:struts2 的一个action中配置多个result input 讨论下

本文来自: 浪曦视频在线 作者: hoojo 发表于: 2009-6-4 19:05 阅读: 2005收藏

 

 

 

看过张老师的struts2视频或是学过Struts2 的哥们儿,都知道Struts2 的验证方法或是验证框架。都是没有一个返回值的,不像action中的方法,都有一个返回值。如:success、error 还可以自定义。
大家有没有想过,如果一个struts.xml 中配置一个action ,而这个action有多个验证方法。
而这些验证方法都是通过*-validation.xml 来验证的。那么struts.xml 中的action 的
<result name="input">/*.jsp</result>只能有一个对吧
但是有多个错误结果显示页面。那么input 的result怎么配呢。
条件是:一个action 中用*-方法-validation.xml 或是*-validation.xml的验证方法,
去验证输入效验。如果验证用户输入信息错误,将会把错误信息 显示到刚才填写表单的页面。
请问struts.xml 中的action的result input 怎么配置???
谢谢。
本人目前知道用动态的action 可以解决(通配符的方式)
<action name="user_*" class="com.test.action.UserAction" method="{1}">
<result name="success">/success.jsp</result>
<result name="input">/user_{1}.jsp</result>

</action>
但是这种方法的jsp页面名称就定义的很死板,必须是user_开头,后面接方法名称。
eg:user_login.jsp、user_reg.jsp
请问各位老师、同学、哥们儿 有没有更好的解决方法???

 

 

你也可以这样玩:
action:
<action name="*_Action" class="com.deng.PersonInfo" method="{1}" >
            <result name="add">/example/add.jsp</result>
            <result name="update">/example/update.jsp</result>
            <result name="delete">/example/delete.jsp</result>
</action>


jsp:
   <a href="example/add_Action.action">增加</a><br>
   <a href="example/delete_Action.action">删除</a><br>
   <a href="example/update_Action.action">修改</a><br>

学东西不要只看视频学,要多动脑筋,看原理。视频只是给你一个大概轮廓,实际中开发中与视频是不
相同的,哥们!
---------------------------------------------------------------------------------------------------------------------------------------------------
现在的主流搞法都是annotation无配置文件,你再看看这样玩:

web.xml中配置FilterDispatcher,代码如下
<filter>
       <filter-name>struts2</filter-name>
       <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
       <init-param>
                   <param-name>actionPackages</param-name>
                   <param-value>com.deng.action</param-value>
       </init-param>
</filter>
<filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
</filter-mapping>


action:
LoginAction.java
package com.deng.action;
import java.util.Map;
import org.apache.struts2.config.NullResult;
import org.apache.struts2.config.ParentPackage;
import org.apache.struts2.config.Result;
import org.apache.struts2.config.Results;
import org.apache.struts2.dispatcher.ServletActionRedirectResult;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;

@Results( {
@Result(name ="add", value = "/add.jsp", type = NullResult.class),
@Result(name ="update", value = "/update.jsp", type = NullResult.class),
@Result(name ="delete", value = "/delete.jsp", type = NullResult.class),
@Result(name ="query", value = "/query.jsp", type = NullResult.class)
})
public class LoginAction extends ActionSupport{
public String update() {
     System.out.println("--update--");
          return "update";            
  }
    public String delete() {
     System.out.println("--delete--");
          return "delete";           
    }
public String add() {
     System.out.println("--add--");
          return "add";           
    }
     
    public String query() {
     System.out.println("--query--");
          return "query";           
    }
     
    @Override
public String execute() throws Exception {
  System.out.println("----默认进入方法!---");
  return null;
}   
}

相关jsp页面:
index.jsp:
<a href="login!add.action">增加</a><br>
<a href="login!delete.action">删除</a><br>
<a href="login!update.action">修改</a><br>
<a href="login!query.action">查找</a><br>

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:330411次
    • 积分:3293
    • 等级:
    • 排名:第10300名
    • 原创:7篇
    • 转载:91篇
    • 译文:2篇
    • 评论:14条
    最新评论