首先我们有一个Action——UserAction
public class UserAction
extends ActionSupport
{
public String add()
{
return "add";
}
public String modify()
{
return "modify";
}
}
1 指定method
<package name="user" namespace="/userPath" extends="struts-default">
<action name="userAdd" class="com.xy.UserAction"
method="add">
<result name="add">add.jsp</result>
</action>
<action name="userModify" class="com.xy.UserAction" method="modify">
<result name="modify">modify.jsp</result>
</action>
</package>
路径:
userPath/userAdd
userPath/userModify
特点:
不灵活,CRUD四个操作就要配4个action。
2 动态方法调用DMI(Dynamic Method Invocation)
<package name="user" namespace="/userPath" extends="struts-default">
<action name="user" class="com.xy.UserAction">
<result name="add">add.jsp</result>
<result name="modify">modify.jsp</result>
</action>
</package>
路径:
userPath/user!add
userPath/user!modify
特点:
灵活。只要指定不同的方法就可以做不同的操作。
3 通配符
<package name="all" namespace="/" extends="struts-default">
<action name="*_*" class="com.xy.{1}Action" method="{2}">
<result name="add">{1}_add.jsp</result>
<result name="modify">{1}_modify.jsp</result>
</action>
</package>
路径:
User_add
User_modify
特点:
更加灵活。整个项目甚至只要配一个总的action。是指定方法的一个特殊的用法。不过我觉得用DMI可以将每个模块分的清楚。
4 总结
在配置的时候要记住一句话:约定优于配置。
在一个项目中,配置前,我们需要对action名,网页名等等有严格的约定,才能做好配置。
分享到:
相关推荐
在Struts中,`struts.xml`和`struts.properties`是两个关键的配置文件,它们定义了应用的行为和设置。下面将详细讲解这两个配置文件的内容、用途以及如何配置。 **一、struts.xml配置详解** `struts.xml`是Struts2...
在Java Web开发中,`struts.xml`, `applicationContext.xml` 和 `web.xml` 是三个至关重要的配置文件,它们各自负责不同的职责,并协同工作来构建一个完整的应用框架。以下是关于这三个配置文件的详细说明。 首先,...
- `method`属性:如果存在,指定了Action类中处理请求的方法。 4. **元素**: - `<result>` 配置了动作执行后跳转的目标页面或视图,可以是JSP、Freemarker模板等。 - `name`属性:定义了结果的名称,通常与...
Struts2支持动态方法调用,允许不预先在`struts.xml`中定义Action,而是直接通过URL调用Action类的任何公共方法。 通过理解和灵活运用`struts.xml`配置,开发者能够构建出高效、可维护的Struts2应用。同时,配合...
通过在`<action>`标签中使用`method`属性,我们可以指定要执行的动作类的具体方法。例如: ```xml <struts> <package name="demo" extends="struts-default"> <action name="test" class="action.MyAction"> <!-...
总之,`struts_xml`中的Action配置是Struts2应用的基石,通过它可以灵活地定义请求与业务逻辑的映射关系,以及后续的页面跳转和拦截器链,从而构建出高效、可维护的Web应用。深入了解和熟练掌握这部分知识对于提升...
### Struts.xml中Constant属性参数配置详解 #### 概述 在Struts2框架中,`struts.xml` 文件扮演着至关重要的角色,它不仅负责配置应用的基本信息,还允许开发者通过一系列的常量(constant)来定制Struts2的行为。...
这里,`Login_*`将匹配所有以`Login_`开头的请求,`{1}`是OGNL表达式,用于获取Action名称中的第二个部分,作为Action方法名。 9. **DevMode**: `<constant name="struts.devMode" value="false" />`设置Struts2...
- **method**:指定Action中的具体方法。 示例代码如下: ```xml <action name="hello" class="com.kay.struts2.Action.LoginAction"> <interceptor-ref name="timer"></interceptor-ref> ...
现在,当用户访问匹配Action的URL时,Struts2框架会解析`struts.xml`文件中的配置,执行对应的Action,然后根据结果类型返回相应的视图。你可以在此基础上扩展配置,比如添加更多的Action、结果类型、拦截器,以满足...
每个Action类都与一个或多个URL路径关联,当用户发起请求时,Struts2会根据配置文件(通常是struts.xml)来决定哪个Action来处理请求。 **Hibernate** 是一个流行的关系型数据库ORM框架,它简化了Java应用中的数据...
10. struts.enable.DynamicMethodInvocation:这是一个布尔值,用于确定是否允许动态方法调用。如果设置为true,Struts2将允许动态方法调用。 11. struts.freemarker.manager.classname:这是一个FreemarkerManager...
在Struts2中,`struts.xml`文件是核心配置文件,用于定义应用的行为、动作映射、结果类型、拦截器等。这篇博文主要探讨了`struts.xml`文件的元素结构,下面我们将详细解析这些关键元素。 首先,`struts.xml`文件...
拦截器是Struts2中的一种机制,它们在Action执行前后执行特定的任务,如日志记录、性能统计等。`<interceptor>`定义单个拦截器,通过`name`指定名称,`class`指定实现类。 6. **interceptor-stack标签**: `...
3. **interceptors**:拦截器是Struts2的一个重要特性,它们可以插入到Action调用链中,执行预处理或后处理任务。例如,我们可能需要添加一个`logger`拦截器来记录每个请求的信息。 4. **result**:result元素定义...
在上面的`struts.xml`配置中,`<constant name="struts.enable.DynamicMethodInvocation" value="true"/>`启用了动态方法调用。这意味着你可以通过URL直接调用Action的任何公开方法。同时,`<constant name="struts....
动作映射是`struts.xml`中最重要的部分,它定义了用户请求如何映射到特定的Java方法。每个动作映射都包含了动作名称、类、方法、结果等属性。例如: ```xml <action name="save" class=...
- `<action>` 元素定义了一个具体的业务操作,`name` 是 Action 的名称,`class` 是对应 Action 类的路径,`method` 是要调用的方法。 - `<interceptor-ref>` 在 Action 中引用拦截器,覆盖默认拦截器栈。 10. **...
Struts 2.0是Java Web开发中广泛使用的MVC框架,它的核心在于`struts.xml`配置文件。这个配置文件扮演着应用的中枢角色,负责定义动作(Actions)、结果(Results)、拦截器(Interceptors)等关键组件,以及它们...