码迷,mamicode.com
首页 > 其他好文 > 详细

struts2值栈存取数据小结(使用ognl表达式)

时间:2017-09-17 20:56:51      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:demo   pre   标签   value   一个   log   创建   bsp   string   

前言:使用ognl和struts2标签库的时候要在 jsp页面 中 加入这么一行 

<%@ taglib uri="/struts-tags" prefix="s" %>

struts(统一格式):

        <action name="ognl" class="com.demo.test1.OnglAction" method="ognl1">
            <result name="ognl1" >/OnglPage.jsp</result>
        </action>

 

User(统一用一个User):

public class User {
    String username;
    String password;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    
}

 

===============================================================================================================================================================

一、直接向值栈中存放数据

action:

    /**
     * 一、直接以键值对的形式设置(创建)值栈stack
     * @return
     */
    public String ognl1(){
        ValueStack stack = ActionContext.getContext().getValueStack();
        stack.set("username", "name1");//创建一个值栈的key
        stack.setValue("username", "name2");//对已有的值栈的value进行修改
        return "ognl1";
    }

 

jsp:

 直接以键值对的形式设置(创建)值栈stack:<br>
    <s:property value="username"/> <br>

 

就可以在jsp页面中看到  name2

 

================================================================================================================================================================

二、向值栈中存放对象

action:

    /**
     * 二、存储对象
     *     1、声明user
     *     2、创建getUser方法
     *     3、设置user实例的属性值
     * 创建user实例的时候就已经放进了值栈中
     */
    User user;
    public User getUser() {
        return user;
    }
    public String ognl2(){
        user=new User();
        user.setUsername("张三");
        user.setPassword("123456");
        return "ognl2";
    }

 

jsp:

    向值栈中存放对象并显示:<br>
    <s:property value="user.username"/><br>
    <s:property value="user.password"/>

 

 

================================================================================================================================================================

三、值栈中存放list集合

action:

    /**
     * 三、值栈中存放list集合
     */
    //获得user和list实例
    User user1=new User();
    User user2=new User();
    User user3=new User();
    ArrayList<User> list=new ArrayList<User>();
    //获得get方法
    public User getUser1() {
        return user1;
    }
    public User getUser2() {
        return user2;
    }
    public User getUser3() {
        return user3;
    }
    public ArrayList<User> getList() {
        return list;
    }
    public String ognl3(){
        //设置user的值
        user1.setUsername("name1");
        user1.setPassword("pwd1");
        user2.setUsername("name2");
        user2.setPassword("pwd2");
        user3.setUsername("name3");
        user3.setPassword("pwd3");
        //user加入list集合
        list.add(user1);
        list.add(user2);
        list.add(user3);
        return "ognl3";
    }
    

 

jsp:

  向值栈中存放list:<br>
  <s:property value="list[0].username"/><br>
  <s:property value="list[0].password"/><br>
  list遍历list取值<!-- 遍历list方式取值 -->
  <s:iterator value="list" >
      <s:property value="username"/>
      <s:property value="password"/><br>
  </s:iterator>

 

%使用

1 struts2标签中表单标签

1)在struts2标签里面使用ognl表达式,如果直接在struts2表单标签里面使用ognl表达式不识别,只有%之后才会识别。

 技术分享

 

struts2值栈存取数据小结(使用ognl表达式)

标签:demo   pre   标签   value   一个   log   创建   bsp   string   

原文地址:http://www.cnblogs.com/sovagxa/p/7536918.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!