转自: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()方法
相关推荐
如果希望一个Action处理多个请求,可以在同一个`<action>`元素内添加多个`<result>`子元素,每个`<result>`对应一个不同的请求。例如: ```xml <result name="success">/success.jsp <result name="error">/...
在Struts2框架中,处理多个请求的方法是通过一个Action类实现多个处理方法。这使得代码结构更加清晰,每个方法对应特定的业务逻辑。以下是Struts2处理多个请求的三种主要方式的详细说明: 1. **动态方法调用 (DMI -...
这是一个Struts2动作类,负责接收和处理Ajax请求。在这个例子中,`ajax()`方法接收一个`id`参数,根据这个参数返回对应的国家名称。返回的`SUCCESS`表示动作执行成功,Struts2会根据配置返回JSON数据。 5. **Ajax....
通过两个自定义结果集,解决struts2请求转发或重定向时,一个结果码无法对应多个视图的问题。以前的做法,是在配置Action时使用通配符解决,但这样需要JSP页面名称和Action的方法名称一致,如果命名不一致或不规范,...
在处理一个表单(form)中存在多个submit按钮的情况时,Struts2提供了一种优雅的方式来区分用户点击了哪个按钮,而无需像Struts1那样使用额外的动作类(如LookupDispatchAction或EventDispatchAction)。 在传统的...
资源中示例了一个struts2的配置文件中配置的action的result结果为另外一个action的配置,该跳转的过程中是带所有参赛调整的,在另外一个action中可以接受到当前action的所有参数,此配置文件是我日常开发中的经验...
Struts2是一个强大的Java web应用程序框架,用于构建和管理MVC(模型-视图-控制器)架构的应用程序。在Struts2中,Action是核心组件,它负责接收HTTP请求并处理业务逻辑。这篇博客主要讨论了如何配置Struts2 Action...
通过上述对比可以看出,Struts2相比Struts1在很多方面进行了改进和优化,尤其是在灵活性、可测试性以及对现代Web开发的支持上有着显著的优势。尽管如此,在某些特定的应用场景下,Struts1可能仍然有其适用之处。选择...
5. **请求处理流程**:当用户发送一个请求时,Struts拦截器会解析请求URL,根据`struts-config.xml`中的配置找到对应的Action,调用其execute方法,处理完成后,将控制权交给视图来渲染结果。 在"第2章"的文件中,...
3. 高效性:Struts2 框架提供了一个高效的架构,可以快速地处理用户的请求。 Struts2 框架的应用场景 Struts2 框架的应用场景包括: 1. 企业级应用程序:Struts2 框架适用于开发大型的企业级应用程序。 2. 电子...
2. **创建Action类**:定义一个Struts2 Action类,该类将处理AJAX请求。Action类中的方法通常需要一个`execute`方法,返回一个表示结果的字符串,Struts2会根据这个结果选择合适的Result来展示响应。 ```java ...
Struts2是一个非常流行的Java MVC框架,用于构建企业级Web应用程序。然而,它在历史上曾出现过多个安全漏洞,其中最著名的就是“Struts2漏洞”。这个标题和描述提到的"struts2-scan"是一种工具,专门用来检测Struts2...
Struts2是一个强大的Java web开发框架,用于构建可维护、可扩展且结构良好的应用程序。它在MVC(Model-View-Controller)设计模式的基础上提供了一种实现方式,使得开发者能够更方便地处理用户请求,控制业务逻辑,...
Struts2是一个强大的Java web应用程序框架,用于构建和维护可扩展、易于管理的企业级Web应用。这个"struts2的一个简单的例子"旨在帮助初学者理解并掌握Struts2的核心概念和工作原理。以下是对这个例子的详细解释: ...
- **拦截器**:拦截器是Struts2的一个重要特性,可以在请求到达Action之前或之后执行特定的操作,如验证用户登录状态、日志记录等。 #### 四、Struts2进阶技巧 - **ModelDriven模式**:该模式允许Action实例共享同...
Struts2是一个强大的Java web应用程序框架,用于构建和部署企业级的MVC(Model-View-Controller)架构的Web应用。这个"留言板留言板struts2"项目,显然是一个基于Struts2实现的简单留言板系统,旨在展示Struts2的...
在Struts2中,创建一个名为`Struts2Action.java`的Action类,处理Ajax请求并返回JSON。需要添加Struts2的JSON插件支持,然后定义一个方法,如`execute()`,返回`json`结果类型: ```java @Action(value = ...
相比之下,Struts2 为每个请求创建一个新的 Action 实例,避免了线程安全问题。 3. **对 Servlet API 的依赖**: - Struts1 的 Action 直接依赖于 Servlet API,请求和响应对象会传入 execute 方法。而 Struts2 ...
Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它使得开发者可以更方便地构建可维护、可扩展的Web应用程序。在"用Struts写的计算器项目"中,我们可以深入理解Struts框架的核心概念和工作...
1. **Action**:Struts2的核心,负责接收请求并执行相应的业务逻辑,最后返回一个Result。 2. **配置文件**:通常为struts.xml,用于定义Action、Result和拦截器等配置,指导Struts2如何处理请求。 3. **拦截器**:...