struts2 action通配符

首先,看一个struts2的配置文件:

<package name="actions" extends="struts-default" namespace="/actions">
  <action name="Student*"class="com.bjsxt.struts2.action.StudentAction" method="{1}">
   <result>/Student{1}_success.jsp</result>
  </action>
</package> 

这里,"{1}"表示第1个*,例如,当请求以下路径时:

引用

http://localhost:9000/Struts2_0600_ActionWildcard/actions/Studentadd

*为add,因此method="add",返回的页面为/Studentadd_success.jsp
即实际调用的是StudentAction中的add方法。

struts2的配置文件还可以更加简洁,即在action的class中使用通配符,如下:

<package name="actions" extends="struts-default" namespace="/actions">
   <action name="*_*" class="com.bjsxt.struts2.action.{1}Action" method="{2}">
       <result>/{1}_{2}_success.jsp</result>
   </action>
</package>

使用两个通配符,{1}代表第一个*,{2}代表第二个*号。
这个配置文件的意思是调用{1}Action的{2}方法,返回到{1}_{2}_success.jsp这个页面。例如,当请求一下路径时:

引用

http://localhost:9000/Struts2_0600_ActionWildcard/actions/Teacher_add

其中{1}为Teacher,{2}为add,即实际调用的是TeacherAction类中的add方法,返回到Teacher_add_success.jsp页面。

可以看到,使用第二种通配符,配置文件非常简洁,即使增加类和方法,也不需要修改配置文件,因此推荐通过第二种方式使用通配符。

Struts2配置中 Action 使用通配符

1). Xml代码

1. <action name="user*" class="com.UserAction" method="{1}"> 
   2.        <result name="succee">/logon/welcome.jsp</result> 
   3.        <result name="input">/logon/logon.jsp</result> 
   4. </action>

<action name="user*" class="com.UserAction" method="{1}">
       <result name="succee">/logon/welcome.jsp</result>
       <result name="input">/logon/logon.jsp</result>
</action>

比如当用户请求userLogon时,会被UserAction类处理,method{1}中{1}值为name属性中第一个*的值.

2).Xml代码

1. <action name="*Action_*" class="com.{1}" method="{2}"> 
   2.         <result name="succee">/logon/welcome.jsp</result> 
   3.         <result name="input">/logon/logon.jsp</result> 
   4. </action>

<action name="*Action_*" class="com.{1}" method="{2}">
        <result name="succee">/logon/welcome.jsp</result>
        <result name="input">/logon/logon.jsp</result>
</action>

当用户请求UserAction_logon时,会被UserAction类的logon方法处理
与上面一样,class中{1}的值为name属性中第一个*的值,也就是UserAction,{2}的值为name属性中第二个*的值,即为logon

时间: 2024-10-30 11:31:01

struts2 action通配符的相关文章

[JavaWeb基础] 018.Struts2 Action通配符使用

Struts2中有一个很牛逼的action通配符,可以用来简化action配置,以我们将要讲解的案例来说,如果我们要对一个学生信息进行增加,删除,修改,那么按照原来的做法,我们需要写3个Action来配置:student_add,student_update,student_del.那么我们容易发现它们可以提取共同的前缀student_,这样我们就可以配置下通配符,把后面的东西弄成变量,那么我们就只要配置一个action就可以了. 1.首先编写我们的Action类 package com.bab

【web开发学习笔记】Structs2 Action学习笔记(三)action通配符的使用

action学习笔记3-有关于通配符的讨论 使用通配符,将配置量降到最低,不过,一定要遵守"约定优于配置"的原则. 一:前端htm <前端代码html> </head> <body> <a href="<%=context %>/actions/Studentadd">添加学生</a> <a href="<%=context %>/actions/Studentdel

struts2的通配符和动态方法调用

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"    "http://struts.apache.org/dtds/struts-2.3.dtd"><struts>    <

Struts2的通配符配置方式

Struts2的Action类很有意思,你可以使用3种方式来实现具体的Action类: 让你的Action类继承自ActionSupport类(项目中最常用这种方式,因为ActionSupport类中定义了很多帮助方法) 让你的Action类实现Action接口 使用POJO的方式来实现,只要Action类中有一个返回值为String的execute方法就好了(这种方式使Action类最容易被测试) 以上三种Action的实现方式都可以被struts2框架自动识别,如果你在struts.xml里

struts2的通配符与动态方法调用

1.Action标签中的method属性 我们知道action默认的执行的方法是execute方法,但是一个action只执行一个方法我们觉得有点浪费,我们希望在一个action中实现同一模块的不同功能.怎么办呢? 思考: 我们是否可以在execute()方法中添加一个判断,然后根据该判断选择我们执行的方法呢?我想struts2也是这样干的.不过是在execute之前的方法中进行的,判断的依据不是通过参数,而是通过取读配置文件或者其他得到的. Struts2在Action中为我们提供了这样的一个

关于Struts2 Action中get和set惹得祸。

代码: 1 public class RandomAction extends PageAction { 2 3 /**随机抽取**/ 4 private IRandomService randomService; 5 6 /**责任民警**/ 7 private IScZrmjService scZrmjService; 8 9 /**企业基本信息**/ 10 private IQyjbxxService qyjbxxService; 11 12 private User user; 13 1

struts2 action 页面跳转

struts2 action 页面跳转 标签: actionstruts2redirect 2013-11-06 16:22 20148人阅读 评论(0) 收藏 举报 (1)type="dispatcher" 为默认,用于jsp页面跳转<result name="success">/index.jsp</result> 完整的写法为: <result name="success" type="dispatc

struts2 action重定向action

一共有三种方式redirect,redirect-action,chain 区别如下 1 redirect:action处理完后重定向到一个视图资源(如:jsp页面),请求参数全部丢失,action处理结果也全部丢失. 2 redirect-action:action处理完后重定向到一个action,请求参数全部丢失,action处理结果也全部丢失. 3 chain:action处理完后转发到一个action,请求参数全部丢失,action处理结果不会丢失. 今天碰到的bug显示提示另一个act

struts2 action在前台显示信息提示

一.前端解决 1.使用javascript代码验证,为空不允许提交.就算验证成功也不是表单提交成功了,只是肯定前端传来的数据是正确的. 2.使用ajax方式,action处理完成返回一个成功消息就可以了.失败就返回失败消息.(每个提交时都要用ajax,太麻烦) 二.后台解决 3.使用struts2自带功能.判断完参数后,如果为空,return到一个错误页面error,正常的话return到一个提交成功页面success. 第一种:在struts2 action中弹出Js脚本提示信息 // 让ac