在开发应用的过程中,你很有可能会遇到配置中的模式问题,比如当包名和用来调用action的URL匹配(如/app/admin/user/add.action和/app/sales/user/edit.action),再比如当action的名字包含一个领域名字或action类中被调用的方法时(如/app/addUser.action和/app/editUser. action)。
当出现这样的模式匹配问题时,可以采用一种替代处理方法。这种方法无需显式地配置每个action,因为这样对那些大型应用来说太浪费时间,我们可以使用通配符将配置结合到单个action配置里去。可以将星号作为action名字属性的通配符,每个星号可以使用圆括号里的数字(从索引1开始)来单独进行检索。
举个例子,比如说某个Web应用的URL都包含标准的Web上下文,然后紧接一个实体对象名,最后以一个action结尾。这种模式的例子如下:/app/user/add.action、/app/user/edit.action、/app/ project/add.action和/app/project/edit.action等。该标准还规定每个实体对象都有一个action类,然后该action类又有多个方法处理与用户界面之间的交互问题(比如edit()和add()方法等)。
通过通配符的使用,这个模式可以在一个配置中为所有实体对象实现配置:
可以使用输入的URL来确定类名以及方法名。当URL是/app/user/add.action时,类名将是com.fdar.apress.s2.userAction,方法名就是add(注意URL中字符大小写与类名一致)。
通配符也可用于扩展result标签。对于/app/user/add.action这个URL,"success"结果将呈现/user/add.jsp页面,"input"结果呈现/user/edit.jsp,"home"呈现/user/home.jsp。
在action的name属性中使用通配符唯一的限制就是不能将两个星号不加分隔地放在一起。如果这样,Struts 2框架将无法知道怎样分隔action的名字。因此,需要使用一个分隔符,比如可以使用"/"(前文例子就是使用该符号)或者使用"_"符号,比如/app/user_edit.action这样的URL。
如果需要一个非分词(untokenized)的URL,我们可以使用{0}这个特殊存取器。
注意 如果你确实需要在action的名字中使用斜线,比如name="*/*",那么就需要将环境属性struts.enable.SlashesInActionNames的值设为true。
分享到:
相关推荐
Action的配置主要在Struts2的配置文件中进行,包括`struts.xml`、`struts.properties`以及其他的扩展配置文件。以下是Action配置的一些基本方式: 1. **简单Action配置**: 一个基本的Action配置示例如下: ```...
4. **读取struts.xml配置文件**:根据配置文件中的信息确定请求的处理方式。 5. **解析namespace**:确定请求所属的namespace。 6. **定位action**:根据namespace和action名称找到对应的Action类。 7. **执行result...
在Struts2的配置文件(通常为struts.xml或struts-default.xml)中,通配符是一种特殊字符,如`*`,它可以用作占位符,匹配一组相似的Action或URL。通过使用通配符,我们可以创建一组通用的配置规则,这些规则可以...
2. **配置web.xml**:配置Struts2的过滤器,确保所有的请求都经过Struts2框架处理。 3. **创建struts.xml**:配置Action、视图等信息。 4. **编写Action类**:实现具体的业务逻辑。 5. **编写视图页面**:如JSP页面...
- **多配置文件**:可以指定多个配置文件,如`struts-default.xml`、`struts-plugin.xml`等,无需再写`package action`。 - **通配符调用Action**:通过通配符的方式配置Action,简化Action的配置。 #### 七、请求...
通配符配置通常是在`struts.xml`文件中完成的。例如,以下配置将匹配所有以`user_`开头的动作: ```xml <package name="default" namespace="/" extends="struts-default"> *" class="com.example.UserAction"> ...
2. **检查struts.xml文件**:这是Struts 2的配置文件,用来定义action、结果集、拦截器等。在该文件中,你需要定义action的名称、映射的类以及返回的结果页面。 3. **检查web.xml文件**:在`web.xml`中,你需要配置...
然后,我们创建Struts2的核心配置文件`struts2.xml`。这是一个XML文件,它定义了应用程序的行为和映射。例如: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software ...
- 通配符配置降低了XML配置文件的复杂性,使得Action配置更加模块化。 - 更方便地实现不同URL请求间的分发,如基于HTTP方法(GET, POST)的分发。 6. **拦截器和结果类型**: - 通配符配置同样适用于拦截器链,...
2. **Struts2通配符**:Struts2支持使用通配符进行URL映射,这使得路由更加灵活。例如,`*`可以匹配任意字符,`**`可以匹配多个目录层级。这种特性有助于创建更简洁、可读性强的URL结构。 3. **Struts2应用POJO...
Struts2的配置文件不仅限于上述内容,还涉及更多细节,比如Interceptor配置、Result类型的定义、动态方法调用、通配符Action、类型转换器、异常处理策略等。每个部分都是为了提高应用程序的灵活性和可维护性,让...
这种方式较为简单直观,但当方法数量增多时,配置文件会变得冗长。 ##### 4.2 通配符方式 使用通配符可以更高效地管理多个方法。Struts2支持两种类型的通配符配置:一种是以`*`作为通配符;另一种是通过指定特定的...
- **Spring ApplicationContext配置**:指定Spring配置文件的路径,使用通配符以适应多个配置文件。 - **ContextLoaderListener**:启动Spring上下文加载监听器,初始化Spring容器。 - **...
- **配置文件位置**:**Struts2** 的配置文件(例如 struts.xml)通常位于项目的 src 目录下,编译后会被复制到 classes 目录。 - **包配置**: ```xml <package name="" extends="struts-default" namespace=""> ...
3. **struts.xml**:这个文件是Struts2的核心配置文件,它定义了Action、结果类型、拦截器等。将其放置在`src`目录下,可以方便地管理应用的配置。 4. **开发模式**:通过在`struts.xml`中添加 `<constant name="...
Struts2提供了一种灵活的验证方式,可以基于Action类或者XML配置文件进行表单数据的校验。通过编写ValidatorForm或使用注解`@Validated`,开发者能够定义验证规则并处理错误信息。 2. **struts2_objectBean**:在...
3. **配置Struts.xml文件:** - 在`src`目录下创建`struts.xml`文件,定义Action及其对应的处理方法。例如: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software ...
3. **配置struts.xml文件**:这是Struts2的核心配置文件,用于定义Action和结果的映射关系。 4. **创建Action类**:创建一个简单的Action类,例如`HelloWorldAction`,并在其中定义执行逻辑。 5. **创建视图页面**:...