`

struts2一个画面多个请求

阅读更多

转自:http://blog.163.com/ufsoftwhy@126/blog/static/40781436200961833358250/

 

方法一 每个按钮都添加method属性

index.jsp 页面内容如下

<s:form  action="TestAction">
     <s:textfield name="user.uname" label="username"></s:textfield>
     <s:textfield name="user.password" label="password"></s:textfield>
     <s:submit value="login"  method="login"></s:submit>
     <s:submit value="regist" method="regist"></s:submit> 
    
    </s:form>

对应的struts.xml文件的处理

<action name="TestAction" class="com.struts.test.TestAction"  >
   <result>success.jsp</result>
   <result name="input">index.jsp</result>
  </action>

TestAction里面的内容要去掉exceute方法,把index.jsp的method对应生成对应的方法就可以了

 public String regist()
 {
  setTip("regist");
  return SUCCESS;  
 }
 
 public String login()
 {
  setTip("login");
  return SUCCESS;
 } 

方法二:(参见struts2权威指南-基于webwork核心的mvc开发的4.2.7小节 第111页)

index.jsp 的内容

     <s:form action="TestAction" >
     <s:textfield name="user.uname" label="username"></s:textfield>
     <s:textfield name="user.password" label="password"></s:textfield>
     <s:submit value="login" onclick="login()"></s:submit>
     <s:submit value="regist" onclick="regist()"></s:submit> 
    
    </s:form>
    <SCRIPT> 
 function regist()
 {
  targegetform =document.forms[0];
  targegetform.action="registAction";
  targegetform.submit();
 }
  function login()
  {
   targegetform =document.forms[0];
  targegetform.action="loginAction";
  targegetform.submit();
  }

struts.xml的配置文件内容

<action name="*Action" class="com.struts.test.TestAction"  method="{0}" >
   <result>success.jsp</result>
   <result name="input">index.jsp</result>
  </action>

TestAction对应的方法,去掉了execute方法

 public String registAction()
 {
  setTip("regist");
  return SUCCESS;  
 }
 
 public String loginAction()
 {
  setTip("login");
  return SUCCESS;
 } 
 

 

方法三

index.jsp 的内容

     <s:form action="TestAction" >
     <s:textfield name="user.uname" label="username"></s:textfield>
     <s:textfield name="user.password" label="password"></s:textfield>
     <s:submit value="login" onclick="login()"></s:submit>
     <s:submit value="regist" onclick="regist()"></s:submit> 
    
    </s:form>
    <SCRIPT> 
 function regist()
 {
  targegetform =document.forms[0];
  targegetform.action="registAction";
  targegetform.submit();
 }
  function login()
  {
   targegetform =document.forms[0];
   targegetform.action="login_1_Action!loginAction";
  targegetform.submit();
  }

struts.xml的配置文件内容

<action name="*_*_Action" class="com.struts.test.TestAction"  method="{0}" >
   <result>success.jsp</result>
   <result name="input">index.jsp</result>
  </action>

TestAction对应的方法,去掉了execute方法

 public String registAction()
 {
  setTip("regist");
  return SUCCESS;  
 }
 
 public String loginAction()
 {
  setTip("login");
  return SUCCESS;
 } 
点击 login 这个按钮则执行 login()方法

分享到:
评论

相关推荐

    struts2一个action处理多个请求 struts2实例

    如果希望一个Action处理多个请求,可以在同一个`&lt;action&gt;`元素内添加多个`&lt;result&gt;`子元素,每个`&lt;result&gt;`对应一个不同的请求。例如: ```xml &lt;result name="success"&gt;/success.jsp &lt;result name="error"&gt;/...

    Struts2 处理多个请求

    在Struts2框架中,处理多个请求的方法是通过一个Action类实现多个处理方法。这使得代码结构更加清晰,每个方法对应特定的业务逻辑。以下是Struts2处理多个请求的三种主要方式的详细说明: 1. **动态方法调用 (DMI -...

    Ajax与Struts2异步请求数据

    这是一个Struts2动作类,负责接收和处理Ajax请求。在这个例子中,`ajax()`方法接收一个`id`参数,根据这个参数返回对应的国家名称。返回的`SUCCESS`表示动作执行成功,Struts2会根据配置返回JSON数据。 5. **Ajax....

    解决struts2请求转发或重定向时,一个结果码无法对应多个视图的问题

    通过两个自定义结果集,解决struts2请求转发或重定向时,一个结果码无法对应多个视图的问题。以前的做法,是在配置Action时使用通配符解决,但这样需要JSP页面名称和Action的方法名称一致,如果命名不一致或不规范,...

    Struts2教程:处理一个form多个submit.doc

    在处理一个表单(form)中存在多个submit按钮的情况时,Struts2提供了一种优雅的方式来区分用户点击了哪个按钮,而无需像Struts1那样使用额外的动作类(如LookupDispatchAction或EventDispatchAction)。 在传统的...

    Struts2从一个带参数action跳转到另一个action

    资源中示例了一个struts2的配置文件中配置的action的result结果为另外一个action的配置,该跳转的过程中是带所有参赛调整的,在另外一个action中可以接受到当前action的所有参数,此配置文件是我日常开发中的经验...

    Struts2的Action多个方法配置和验证

    Struts2是一个强大的Java web应用程序框架,用于构建和管理MVC(模型-视图-控制器)架构的应用程序。在Struts2中,Action是核心组件,它负责接收HTTP请求并处理业务逻辑。这篇博客主要讨论了如何配置Struts2 Action...

    struts1和struts2的区别

    通过上述对比可以看出,Struts2相比Struts1在很多方面进行了改进和优化,尤其是在灵活性、可测试性以及对现代Web开发的支持上有着显著的优势。尽管如此,在某些特定的应用场景下,Struts1可能仍然有其适用之处。选择...

    struts的一个例子

    5. **请求处理流程**:当用户发送一个请求时,Struts拦截器会解析请求URL,根据`struts-config.xml`中的配置找到对应的Action,调用其execute方法,处理完成后,将控制权交给视图来渲染结果。 在"第2章"的文件中,...

    ajax请求传值Struts2+jsp

    2. **创建Action类**:定义一个Struts2 Action类,该类将处理AJAX请求。Action类中的方法通常需要一个`execute`方法,返回一个表示结果的字符串,Struts2会根据这个结果选择合适的Result来展示响应。 ```java ...

    struts2-scan_struts2-scan_struts2scan_scan_struts2漏洞_

    Struts2是一个非常流行的Java MVC框架,用于构建企业级Web应用程序。然而,它在历史上曾出现过多个安全漏洞,其中最著名的就是“Struts2漏洞”。这个标题和描述提到的"struts2-scan"是一种工具,专门用来检测Struts2...

    Struts2教学视频

    Struts2是一个强大的Java web开发框架,用于构建可维护、可扩展且结构良好的应用程序。它在MVC(Model-View-Controller)设计模式的基础上提供了一种实现方式,使得开发者能够更方便地处理用户请求,控制业务逻辑,...

    struts2的一个简单的例子

    Struts2是一个强大的Java web应用程序框架,用于构建和维护可扩展、易于管理的企业级Web应用。这个"struts2的一个简单的例子"旨在帮助初学者理解并掌握Struts2的核心概念和工作原理。以下是对这个例子的详细解释: ...

    Struts2视频教程

    - **拦截器**:拦截器是Struts2的一个重要特性,可以在请求到达Action之前或之后执行特定的操作,如验证用户登录状态、日志记录等。 #### 四、Struts2进阶技巧 - **ModelDriven模式**:该模式允许Action实例共享同...

    留言板留言板struts2留言板struts2

    Struts2是一个强大的Java web应用程序框架,用于构建和部署企业级的MVC(Model-View-Controller)架构的Web应用。这个"留言板留言板struts2"项目,显然是一个基于Struts2实现的简单留言板系统,旨在展示Struts2的...

    JQuery发送Ajax请求Struts2,并返回JSON的例子

    在Struts2中,创建一个名为`Struts2Action.java`的Action类,处理Ajax请求并返回JSON。需要添加Struts2的JSON插件支持,然后定义一个方法,如`execute()`,返回`json`结果类型: ```java @Action(value = ...

    Struts2与Struts1区别

    相比之下,Struts2 为每个请求创建一个新的 Action 实例,避免了线程安全问题。 3. **对 Servlet API 的依赖**: - Struts1 的 Action 直接依赖于 Servlet API,请求和响应对象会传入 execute 方法。而 Struts2 ...

    用struts写的计算器项目

    Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它使得开发者可以更方便地构建可维护、可扩展的Web应用程序。在"用Struts写的计算器项目"中,我们可以深入理解Struts框架的核心概念和工作...

    struts2和tomcat使用

    1. **Action**:Struts2的核心,负责接收请求并执行相应的业务逻辑,最后返回一个Result。 2. **配置文件**:通常为struts.xml,用于定义Action、Result和拦截器等配置,指导Struts2如何处理请求。 3. **拦截器**:...

Global site tag (gtag.js) - Google Analytics