zoukankan      html  css  js  c++  java
  • struts 数据回显 和 ognl表达式常用符号

    1.ognl表达式符号

    #  获取非根元素值  、 动态都建map集合

    $  配置文件取值

    %  提供一个ognl表达式运行环境

    <body>

         <br/>获取request域数据<br/>

         <!-- property 标签是对象类型的标签,默认支持ognl表达式, 会从根元素去China名称对应的值 -->

         <s:property value="China"/>       <br/>

         <!-- 如果直接赋值,需要用单引号 -->

         <s:property value="'China'"/>     <br/>

         <s:property value="%{#request.cn}"/>      <br/>

         

         <!-- 值类型的标签,value值默认就是值类型,不支持ognl表达式 -->

         国家:<s:textfield name="txtCountry" value="%{#request.cn}"></s:textfield>

      </body>

    2.数据回显

    常规办法:要用struts标签

    user.java
    public
    class user { private String username; private String pwd; private String email; private Date birth;}
    useraction.java

    public
    class useraction extends ActionSupport {

    // 此处是0封装请求数据   与回显数据无关
    private User user = new User();   

    public user getUser() {
        return user;
    }
    
    public void setUser(user user) {
        this.user = user;
    }
    public String viewupdate(){
        user userinfo =new user();
        userinfo.setUsername("jack");
        userinfo.setEmail("fangfang@itcast.cn");
        
        
        ActionContext ac= ActionContext.getContext();
        Map<String, Object>request=(Map<String, Object>)ac.get("request");
        request.put("userinfo", userinfo);                                        //注意此处书写格式   
        return "viewupdate";
    }
    }


    viewupdate.jsp
    
    
     <body>
     <s:form action="#">
    用户名:<s:textfield name="user.username" value="%{#request.userinfo.username}"></s:textfield><br/>
    邮箱:<s:textfield name="user.email" value="%{#request.userinfo.email}"></s:textfield>
    </s:form>
     </body>

    采用回显技术

        public String viewUpdate() {
            // 模拟一个对象(先获取一个id,再根据id调用service查询,把查到的结果保存到域)
            User userInfo = new User();
            userInfo.setUserName("Jack");
            userInfo.setEmail("yuanjie@itcast.cn");
            
            ActionContext ac = ActionContext.getContext();
    //        Map<String,Object> request = (Map<String, Object>) ac.get("request");
    //        request.put("userInfo", userInfo);
            
            /************* 数据回显***************/
            // 获取值栈
            ValueStack vs = ac.getValueStack();
            vs.pop();// 移除栈顶元素    移除封装数据      同样不移除 也能取到值
            vs.push(userInfo);  // 入栈
            
            
            // 进入修改页面
            return "viewUpdate";
        }

    回显取值:

        <!-- 数据回显技术:s:textfield会自动查找根元素数据(Ognl表达式语言取值)  -->
          <s:form action="#">
              
              用户名: <s:textfield name="userName"></s:textfield>   <br/>
              
              邮箱: <s:textfield name="email"></s:textfield>     <br/>
              
              <s:submit value="修改"></s:submit>
          </s:form>
          
          <s:debug></s:debug>
  • 相关阅读:
    ubuntu 16.04 网络配置之虚拟网卡的配置
    rabbitmq集群节点操作
    Ubuntu system zabbix-server-3.x install documentation
    PS RSS
    proxy_set_header设置Host为$proxy_host,$host与$local_host的区别
    centos 7 free 字段含义
    Linux atop 监控系统状态
    谨慎调整内核参数:vm.min_free_kbytes
    nginx反向代理http与https两种协议配置简述
    Python 获取以毫秒为单位的时间戳
  • 原文地址:https://www.cnblogs.com/yimian/p/7825172.html
Copyright © 2011-2022 走看看