struts.xml文件中action配置、OGNL的投影映射、OGNL表达式的符号

在struts.xml文件中不同的action配置,请求的路径是不一样的
1、请求 path = user!query.action; 配置如下;
<action name="user" class="com.bwf.code.action.UserAction">
<result name="queryUser">/query.jsp</result>
</action>

2、请求path = user.action ; 配置如下:
<action name="user" method="query" class="com.bwf.code.action.UserAction">
<result name="queryUser">/query.jsp</result>
</action>
user.action 因为匹配到struts2的后缀名称,所以struts2会实施拦截, 拦截匹配到path后执行该类的execute方法, 如果明确指明了
具体的方法名,就执行具体的方法;

3、第2步中的弊端在于,该类中一般会有很多个业务处理方法,不同的方法都需要配置一个action标签;

如下面这个例子,新增和查询需写两个标签;
<action name="user" method="query" class="com.bwf.code.action.UserAction">
<result name="queryUser">/query.jsp</result>
</action>
<action name="user2" method="add" class="com.bwf.code.action.UserAction">
<result name="queryUser">/query.jsp</result>
</action>

有没有一个办法,一个类只写一个action标签,然后该类中的所有业务处理方法,都共享该类的配置关系; 通配;

4、 每个类只需要写一个action标签,然后对该类中的方法名称进行通配;
<action name="user_*" method="{1}" class="com.bwf.code.action.UserAction">
<result name="queryUser">/query.jsp</result>
</action>

5、对所有类,所有方法进行通配(先暂时别用,先用第四个的通配)
<action name="*_*" method="{1}" class="com.bwf.code.action.{2}Action">
</action>

OGNL的投影映射
判断user属性存在某一个字符串的条件: <s:iterator var="x" value="#attr.userList.{?#this.getUser().indexOf(‘a‘)!=-1}">
判断user属性以某一个字符开头: <s:iterator var="x" value="#attr.userList.{?#this.getUser().startsWith(‘sh‘)}">

OGNL表达式的符号: #,$,%。
# 表示上下文作用域; (parameters、reqeust、session、application、attr)
parameters: #parameters.id[0]作用相当于 request.getParameter("id") .
request : #request.userList 作用相当于 request.getAttribute("userList");
session : #session.userList 作用相当于 session.getAttribute("userList");
application : #application.userList 作用相当于 application.getAttribute("userList");
attr: #attr.userList; 从request,session,application中从小到大的范围查找当前作用对象;

% 主要使用在資源文件中(如國際化、提示信息).
<s:property value="%{getText(‘bwf.jsp.query.name‘)}" />
可以在浏览器设置语言中设置不同的语言,即可看到国际化效果;

$ 主要作为传参存在;
<action name="ognl" class="com.lxit.struts.OgnlAction">
<result type="redirect">hello.action?name=${name}</result>
</action>

时间: 2024-08-27 15:58:06

struts.xml文件中action配置、OGNL的投影映射、OGNL表达式的符号的相关文章

【MyBatis学习05】SqlMapConfig.xml文件中的配置总结

经过上两篇博文的总结,对mybatis中的dao开发方法和流程基本掌握了,这一节主要来总结一下mybatis中的全局配置文件SqlMapConfig.xml在开发中的一些常用配置,首先看一下该全局配置文件中都有哪些可以配置的东西: 配置内容 作用 <properties> 用来加载属性文件 <settings> 用来设置全局参数 <typeAliases> 用来设置类型的别名 <typeHandlers> 用来设置类型处理器 <objectFactor

读取xml文件中的配置参数实例_java - JAVA

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 paras.xml文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xm

struts2中struts.xml文件用通配符配置

在使用struts2的时候,能简单快速地连接action和jsp页面.主要是神奇的配置文件:struts.xml 在起作用. 示例: 这是目录结构: 来一份可用的struts.xml的代码: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//

使用Spring读取xml文件中的配置信息

一般写程序时我们都会将一些配置信息写到配置文件中,以便在不修改源码的情况下对程序的某些点进行更改.这里介绍一种Spring读取xml配置文件的方式,其基本思路如下:定义一个java类,其中定义一些静态变量对应我们的配置信息,然后采用注入的方式将变量值初始化为配置值.示例代码如下: 新建一个java类: package java; public class Config { //要配置的值 public static int value = 0; //这里不能写成静态的 public void s

struts.xml文件中package元素的各大属性讲解

Struts2中的包: Struts2使用包来组织Action,将Action放在包下来定义,通过package元素配置一个包,通过package的子元素action来定义一个Action: Struts2框架中核心组件就是Action.拦截器等,Struts2使用包来管理Action和拦截器等.每个包就是多个Action.拦截器引用的集合. package的属性: 1.name: 配置package元素时必须指定name属性,这是引用该包的唯一标识. 2.extends: 可选属性,指定该包继

ssm框架开发中安全框架--在web.xml文件中的配置

<!--委派代理过滤器链--> <!--配置委派代理过滤器,filter-name必须是springSecurityFilterChain--> <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class&

struts2——配置struts.xml文件

在struts2框架中struts.xml是应当放到src的根目录,程序编译后会将struts.xml放到WEB-INF/classes目录下. Struts2在web.xml中的一般配置如下: Xml代码   <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFil

Struts2 学习笔记——struts.xml文件之Bean的配置

Struts2的大部分核心组件不是以硬编码的形式写在代码中,而是通过自身的IoC容器来管理的. Struts2以可配置的形式来管理核心组件,所以开发者可以很容易的扩展框架的核心组件.当开发者需要扩展或者替换Struts2的核心组件时,只需要提供自己的组件实现类,并部署在Struts2的IoC容器中即可. 我们打开struts2-core-2.2.1.1.jar中的struts-default.xml文件,可以看到大量的Bean的定义.如下代码片段: <struts> <!—- 两个对象工

关于Struts2中 Action 配置method的解读

为Action配置method属性: 将Action类中的每一个处理方法都定义成一个逻辑Action方法. <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="