ognl符号使用

来源:互联网 发布:诺贝尔经济学奖知乎 编辑:程序博客网 时间:2024/06/06 02:12

1. # 符号的用法:作用从context值栈中获取值,构建Map集合。
        * 获得context中的数据
            > <s:property value="#request.name"/>
            > <s:property value="#session.name"/>
            > <s:property value="#application.name"/>
            > <s:property value="#attr.name"/>
            > <s:property value="#parameters.id"/>
            > <s:property value="#parameters.name"/>
        
        * 构建一个map集合
            * 例如:
                * <s:radio name="sex" list="{'男','女'}"></s:radio>
                * <s:radio name="sex" list="#{'0':'男','1':'女'}"></s:radio>
    
    2. % 符号的用法:把字符串强制解析成OGNL的表达式
        * 强制字符串解析成OGNL表达式。
            > 例如:在request域中存入值,然后在文本框(<s:textfield>)中取值,现在到value上。
            > <s:textfield value="%{#request.msg}"/>
    
    3. $ 符号的用法:在配置文件中(XML或者properties)使用$获取值栈中的值
        public class Demo1Action extends ActionSupport{
            private String fname;
            public String getFname() {
                return fname;
            }
            public void setFname(String fname) {
                this.fname = fname;
            }
            public String execute() throws Exception {
                // 向值栈中压入值
                ActionContext.getContext().put("msg", "哈哈");
                return SUCCESS;
            }
        }
        
        <!-- 使用%号 -->
        <action name="demo1Action" class="com.itheima.demo1.Demo1Action">
            <!-- 在配置文件中使用OGNL表达式获取值栈中的值 
                <result>/${fname}/demo1.jsp</result>
            -->
            <result>/demo1/demo1.jsp</result>
        </action>