设置Struts 2处理的请求后缀及Action调用
1、在struts2中默认处理的请求后缀为action,我们可以修改struts.xml 和struts.properties来修改默认的配置,在
struts.xml中<struts>添加子接点<constant name=”struts.action.extension” value=”do” /> 或者是修改
struts.properties文件 添加struts.action.extension = do这都是一样的效果
注意:struts.xml 和struts.properties的都放在src下发布的时候会自动拷贝到WEB-INF/classes下2、
如何调用Action的方法 这是本章的重点
1) 如果在Action中只有一个 execute方法那么配置好后就会自动访问这个方法。如果方法名字不是execute 那么我们需要在struts.xml中的Action接点添加一个method属性为该方法签名,如下:
<action method=”hello” name=”helloAction” class=”com.struts2.chapter5.HelloAction”></action>
这样就会调用hello的方法!
2)这是一个控制器负责处理一个请求的方式,但这样就会造成很多的Action类,给维护带来困难。所以可以让一个 Action可以处理多个不同的请求。对于一个学生信息管理模块来说,通过一个Action处理学生信息的添、查、改、删(CRUD)请求,可以大大减少 Action的数量,有效降低维护成本。下面代码让我们可以使用通配符来操作
public class StudentAction{
public String insertStudent(){…}
public String updateStudent(){…}
}
<action name=”*Student” class=”com.struts2.chapter5.StudentAction” method=”{1}”>
<result name=”success”>/result.jsp</result>
</action>
仔细观察一下,发现name属性中有一个”*”号,这是一个通配符,说白了就是方法名称,此时method必须配置成method={1},才能找到对应的方法。现在,如果想调用insertStudent方法,则可以输入下面的URL进行访问:http://localhost:8081 /Struts2Demo/ insertStudent.do,如果想调用updateStudent方法,则输入http://localhost:8081/Struts2Demo/updateStudent.do即可。格式如何定义,完全由程序员决定,”*”放在什么地方,也是可以自定义的。
3)对于上面的StudentAction我们还可以这样配置
<action name=”studentAction” class=”com.struts2.demo.StudentAction”>
<result name=”success”>/result.jsp</result>
</action>
调用Action的方法还可以通过”Action配置名!方法名.扩展名”
http://localhost:8081/Struts2Demo/studentAction!insertStudent.do
http://localhost:8081/Struts2Demo/studentAction!updateStudent.do
分享到:
相关推荐
在Struts2中,URL通常以`.do`结尾,这是默认的Action映射后缀。然而,为了提供更加用户友好的URL和提高搜索引擎优化(SEO),开发者可能希望将这些后缀更改为更自然的扩展名,如`.html`。本教程将深入探讨如何在...
Struts2和Struts1是两个非常著名的Java Web框架,它们在处理请求时通常会在URL中显式地显示.action或.do后缀。然而,为了提供更友好的用户体验和增强安全性,有时我们需要隐藏这些扩展名。本篇文章将详细介绍如何在...
在Struts2框架中,一个Action可以包含多个请求处理方法,这种设计模式极大地提升了代码的灵活性与可维护性。通过这种方式,开发人员可以根据不同的业务需求定义不同的处理逻辑,并且能够很好地组织这些逻辑,避免了...
默认情况下,Struts2会处理以`.action`为后缀的请求。若要改变这个默认设置,需要在`struts.xml`配置文件中进行调整。可以通过以下方式指定新的请求后缀: ```xml <constant name="struts.action.extension" ...
struts.action.extension 属性指定需要 Struts 2 处理的请求后缀,该属性的默认值是 action,即所有匹配*.action 的请求都由 Struts 2 处理。 14. struts.serve.static struts.serve.static 属性设置是否通过 JAR ...
在这个例子中,`saveUser`是Action的名称,当用户发送一个以`saveUser`为后缀的请求时,Struts2会将该请求映射到`SaveUserAction`类。 `class`属性指定Action的实现类,即处理请求的Java对象。这个类通常需要继承自...
此属性指定了需要Struts 2处理的请求后缀,默认值为`action`,即所有匹配`*.action`的请求都将由Struts 2处理。如果需要指定多个请求后缀,可以用英文逗号`,`分隔。 #### struts.serve.static 设置了是否通过JAR...
- **请求后缀**:可以通过配置指定Struts2处理的请求后缀,如.action。 - **Struts2常量**:可以通过配置文件设置各种常量,例如指定默认编码等。 #### 六、配置文件管理 - **多配置文件**:可以指定多个配置文件...
本篇文章将讨论如何使用JavaScript来模拟Struts2中的多Action调用,以解决此类问题。 动态方法调用是Struts2的一项重要特性,它允许我们根据传递的参数动态决定执行哪个Action。在Struts2.1版本中,可以通过在...
每个Action类对应一个URL,当用户发送请求到特定URL时,Struts2会根据配置找到对应的Action进行处理。 在Struts2的配置文件(struts.xml)中,我们需要定义Action类与URL的映射关系。例如,对于登录功能,我们可以...
5. **请求后缀配置**:默认情况下,Struts2处理的请求后缀是`.action`,但可以通过修改`struts.action.extension`常量来改变,比如设置为`.do`或`.jsp`。 6. **常量定义**:Struts2有一系列预定义的常量,用于全局...
10. **处理流程**:Struts2接收请求,通过FilterDispatcher过滤器,匹配Action,执行Action,然后根据Result配置进行视图跳转。 11. **多配置文件**:可以使用元素在struts.xml中包含其他配置文件,以便于模块化...
通过在配置文件中设置 `”struts.action.extension” value=”do”/>` 可以改变Struts2的请求后缀,如改为`.do`。若要指定多个后缀,可以使用逗号分隔,如`value=”do,action”`。 5. 常用的Struts2常量: - `...
例如,“struts.i18n.encoding”设置默认的字符编码为UTF-8,而“struts.action.extension”定义了Struts2处理的请求后缀,默认为“do”。 - `<package>`元素定义了一个包,它包含一组相关的动作。每个包可以扩展...
13. `struts.action.extension`:设置Struts2处理的请求后缀,默认是`action`,这意味着所有以`.action`结尾的请求会被Struts2拦截。可以使用逗号分隔多个后缀。 14. `struts.serve.static`:决定是否通过JAR文件...
- `<constant name="struts.action.extension" value="do,action,,"/>`:指定Struts2处理的请求后缀,默认为`action`,多个后缀间以英文逗号分隔。 - `<constant name="struts.configuration.xml.reload" value=...
- **具体操作**:通过修改`web.xml`中的Struts2过滤器映射规则,仅让Struts2处理特定后缀的请求。 - **实现步骤**: - 删除`web.xml`中Struts2的全局映射规则`<url-pattern>/*</url-pattern>`。 - 添加新的映射...