- 浏览: 1504639 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (516)
- Java (49)
- Java/Struts 2.0 (25)
- Java/Spring、Spring MVC (11)
- Java/Quartz (3)
- Java/Lucene (6)
- Java/Hibernate (19)
- Java/openJPA (7)
- Java/DWR (7)
- Java/Security、Spring Security/OAuth2 (6)
- Java/Threading (9)
- Java/XML (22)
- java/design pattern (4)
- Android (2)
- JavaScript (46)
- jquery (3)
- DB/MySQL (23)
- DB/Oracle (16)
- PHP (25)
- CSS (20)
- Linux (38)
- C/C++、DLL、Makefile、VC++ (31)
- 正则 (9)
- Eclipse (4)
- 安全、网络等概念 (25)
- 集群 (7)
- 网页 (5)
- 视频\音频 (1)
- HTML (6)
- 计算机数学/算法 (3)
- Virtualbox (1)
- LDAP (2)
- 数据挖掘 (6)
- 工具破解 (1)
- 其他 (13)
- Mail (1)
- 药材 (3)
- 游戏 (2)
- hadoop (13)
- 压力测试 (3)
- 设计模式 (3)
- java/Swing (2)
- 缓存/Memcache (0)
- 缓存/Redis (1)
- OSGI (2)
- OSGI/Gemini (0)
- 文档写作 (0)
- java/Servlet (3)
- MQ/RabbitMQ (2)
- MQ/RocketMQ (0)
- MQ/Kafka (1)
- maven (0)
- SYS/linux (1)
- cache/redis (1)
- DB/Mongodb (2)
- nginx (1)
- postman (1)
- 操作系统/ubuntu (1)
- golang (1)
- dubbo (1)
- 技术管理岗位 (0)
- mybatis-plus (0)
最新评论
-
pgx89112:
大神,请赐我一份这个示例的项目代码吧,万分感谢,1530259 ...
spring的rabbitmq配置 -
string2020:
不使用增强器 怎么弄?
OpenJPA的增强器 -
孟江波:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!4 ...
spring的rabbitmq配置 -
eachgray:
...
spring-data-redis配置事务 -
qljoeli:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!1 ...
spring的rabbitmq配置
项目中采用struts2.0时,常常使用计算表单式的处理源码原理解析:
例如:
<s:set var="hasDeductAmount" value =" %{bill.supplier.moneyPool>#amount?#amount:bill.supplier.moneyPool}"> </s:set>
上面的绿色为:value中值的表达式表示的值栈表达式为:去除%{}的表达式
bill.supplier.moneyPool>#amount?#amount:bill.supplier.moneyPool
备注: (1)原理看下面的源代码即可理解:
(2)#表示OGNL的表达式
<input name="billCon.amount" type="text" class="inputbg" value="<s:property value='#hasDeductAmount'/>" />
Struts2.0中的每一个标签的都是以组件形式展示:
Component源代码如下:
/** * Finds a value from the OGNL stack based on the given expression. * Will always evaluate <code>expr</code> against stack except when <code>expr</code> * is null. If altsyntax (%{...}) is applied, simply strip it off. * * @param expr the expression. Returns <tt>null</tt> if expr is null. * @return the value, <tt>null</tt> if not found. */ protected Object findValue(String expr) { if (expr == null) { return null; } //获取OGNL的表达式 expr = stripExpressionIfAltSyntax(expr); //从值栈获取表达式的数据对象 return getStack().findValue(expr, throwExceptionOnELFailure); } /** * If altsyntax (%{...}) is applied, simply strip the "%{" and "}" off. * @param expr the expression (must be not null) * @return the stripped expression if altSyntax is enabled. Otherwise * the parameter expression is returned as is. */ protected String stripExpressionIfAltSyntax(String expr) { return stripExpressionIfAltSyntax(stack, expr); } /** * If altsyntax (%{...}) is applied, simply strip the "%{" and "}" off. * @param stack the ValueStack where the context value is searched for. * @param expr the expression (must be not null) * @return the stripped expression if altSyntax is enabled. Otherwise * the parameter expression is returned as is. */ public static String stripExpressionIfAltSyntax(ValueStack stack, String expr) { if (altSyntax(stack)) { // does the expression start with %{ and end with }? if so, just cut it off! if (expr.startsWith("%{") && expr.endsWith("}")) { return expr.substring(2, expr.length() - 1); } } return expr; }
转自:http://topmanopensource.iteye.com/blog/570022
HTML标签的属性可以被赋值为一个静态的值或一个OGNL表达式。如果你在赋值时使用了一个OGNL表达式并把它用"%{"和"}"括了起来,这个表达式将会被求值。
比如,
1、下面的label属性将被赋值字符串“useName”:
label="useName"
2、而下面这个表达式使用了一个OGNL表达式userName,label属性的值将等于某一个动作类中的userName属性值:
label="%{useName}"
3、下面这个表达式将把label属性赋值为会话属性userName的值:
label="%{#session.userName}"
4、这个value属性将被赋值为6:
value="%{1 + 5}"
发表评论
-
Struts2 (Json) + jQuery 组合的简单用法
2011-03-01 23:02 9961、将struts2的json插件加入web工程的lib,js ... -
Struts2中$,#,%的区别
2011-03-01 22:57 1353转自:http://hi.baidu.com/di ... -
<s:generator>
2011-02-27 21:54 1403<s:generator val="%{'aa ... -
<s:merge>
2011-02-27 21:45 865<s:set var="americanCar ... -
<s:append>
2011-02-27 21:44 1213<s:set var="list1" ... -
<s:iterator>
2011-02-27 21:01 1368属性名称 必填项 默认值 ... -
<s:bean>
2011-02-27 18:32 915public class DegreeConverter { ... -
<s:param>
2011-02-27 18:21 3571param标签用来把一个参数传递给包含着它的那个标签。 不管 ... -
updownselect
2011-02-27 16:24 1364<s:updownselect name="c ... -
combobox
2011-02-27 16:08 927<s:combobox name="combo ... -
checkboxlist
2011-02-27 12:15 865ddd public class LoginAction ... -
select optgroup
2011-02-27 11:58 692代码片段: public class LoginAction ... -
select标签
2011-02-23 21:17 987import com.opensymphony.xwork2. ... -
radio标签
2011-02-23 21:13 987import java.util.SortedMap; ... -
list、listkey、listValue属性
2011-02-22 21:07 7223list、listKey、listValue属性对 ... -
Ongl 与 ValueStack ActionContext
2011-01-09 21:03 1450转自:http://blog.sina.com.c ... -
struts2.0的ognl表达式研究
2011-01-09 21:02 1007OGNL —— 完美的催化剂 为了解决数据从V ... -
struts2 tags
2010-01-08 13:22 11981.<s:property> propert ... -
Struts2和Freemarker整合应用批量静态页面的生成
2009-11-07 23:19 3819利用Struts2生成静态页面其实很灵活,很强大,尤其是利用S ... -
导致"ERROR - Could not find action or result"的可能原因。
2009-10-08 10:51 2135在某些情况Struts 2.x的一些错误消息提示让人看得琢磨不 ...
相关推荐
struts2.0注解详解。里面有注解原理,为什么使用注解,注解标签详解。还有实例可以参考。大家可以下载下来看看
结合webwork原理struts1.x.与jsf很相似.
精简全面讲解Struts 2.0Struts2产生背景 工作原理 实现步骤 标签 命名空间 转换器 国际化 输出 令牌机制 拦截器 表单校验(jQuery.validate验证框架) 上传 下载 OGNL(ActionContext StackContext ValueStack区别)
4.8. struts2.0的常用标签有哪些 10 4.9. struts中怎么配置form-bean、action、tiles 10 4.10. logic标签有哪几个? 12 4.11. action是单实例还是多实例,为什么? 13 4.12. dispatchAction是用什么技术实现的? 13 ...
12.2.5 Struts 2.0中的国际化编程 221 12.2.6 创建基于POJO的Action 223 12.3 Spring整合Struts 2.0框架 224 12.4 Struts 2.0应用实例:登录系统 227 12.5 本章小结 231 第13章 JPA的开发与应用 232 13.1 JPA规范...
Struts2基本使用介绍,Strut2.0的由来,常用标签介绍,Action介绍,Struts + Spring + hibernate,表单标志使用小技巧,实现原理,具体实现,更多配置,错误处理,多文件上传等。。。。。
在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. radiobutton标签 13.9.6. password标签 13.9.7. select...
72.8. struts2.0的常用标签 71 72.9. action是单实例还是多实例,为什么? 73 72.10. Struts的validate框架是如何验证的? 74 72.11. dispatchAction是用什么技术实现的? 74 72.12. struts2.0的mvc模式?与struts...
系统框架篇则是以架构设计的高度,讲解搭建网站的三大框架Struts、Hibernate、Sprin9及标签库。项目实战篇详细阐述了通用论坛BBS、社交网站、DIY商品电子交易平台3个系统的开发细节,使读者真正掌握JavaWeb开发的...
Struts2框架介绍、工作原理与架构分析、6大配置文件分析使用通配符定义action、动态方法调用,ActionContext及ServletActionContext使用,模型驱动、属性驱动,默认转换器的介绍,中的表单校验,中的国际化,文件...
133、在一个JSP的请求处理中如何停止JSP的执行 33 134、在JSP中如何定义方法 33 135、在JSP中能发送EMAIL吗 34 136、在SERVLET中我能调用一个JSP错误页吗 34 137、APPLET和JSP如何通讯 35 138、JSP如何与EJB Session...
133、在一个JSP的请求处理中如何停止JSP的执行 33 134、在JSP中如何定义方法 33 135、在JSP中能发送EMAIL吗 34 136、在SERVLET中我能调用一个JSP错误页吗 34 137、APPLET和JSP如何通讯 35 138、JSP如何与EJB ...
在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. checkboxes标签 13.9.6. radiobutton标签 13.9.7. radiobuttons...
在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. radiobutton标签 13.9.6. password标签 13.9.7. select标签 13.9.8...
而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关信息,一般是通过标签库(Taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种表现层框架。 2、 Ajax...
而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关信息,一般是通过标签库(Taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种表现层框架。 2、 Ajax...
在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. radiobutton标签 13.9.6. password标签 13.9.7. select...
在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. checkboxes标签 13.9.6. radiobutton标签 13.9.7. radiobuttons...
Struts2.0..263 第一章 MVC Model.........................263 第二章 Struts Basic264 第三章 Action,Result & Struts2 Tag Library......................267 第四章 Data Transfer & Type Converter..273 第五...