OGNL表达式语言学习 Object Graph Navigation Language 对象图导航语言
- 只有传参传进去才会构造,想初始化domain model,可以自己new,也可以传参数值,但是这时候需要保持参数为空的构造方法。
(右键 Source >Sort Members给代码排序使之更规范。)
- 访问静态方法:<s:property value=”@类名@方法名”/>,还要在struts.xml里配属性:
<constant name=”struts.ognl.allowStaticMethodAccess” value=”true”></constant>
访问静态属性:<s:property value=”@类名@属性名”/>
访问Math类的静态方法:<s:property value=”@@max{2,3}”/>
- 投影(过滤):<s:property value=”users.{?#this.age==1}.{age}[0]”/>(?#或^#(符合条件开头的那个)或$#(符合条件结尾的那个))
Struts标签
Property: <s:property value=”’username’”/>因为property里面的value是object。双引号套单引号是取值为字符串username。不套单引号则是作为ognl标签解析,取key为username的value。
<s: property value=”admin” default=”管理员”/> 如果取不到,设置默认值。
设定HTML:<s:property value=”’<hr/>’” escape=”true”/> escape默认为false,就是不要解析。HTML标签转成普通字符串。
将String强制当ognl表达式:value=”%{#incPage}”
$用于i18n和struts配置文件;#取的ActionContext的值。%将原本的文本属性解析为ognl,对于本来就是ognl的属性不起作用。
设计约定:
- 能简单就不要复杂。
- 库名:项目名称
- 表的命名:_Model名。
- 字段名保持和属性名一致。(尽量不要起名和数据库命名冲突。)
- 用层来划分包 com.bjsxt.bbs.action model(bean) service
- Action类都已Action结尾。这样不容易重名,不容易混淆。
- 使用*-* 的配置。
- 前台/
- 后台/admin
浙公网安备 33010602011771号