struts2 s标签以及#,%{},%{#}等使用方法介绍

今天学了struts2的值栈概念 是struts2的一种存储机制,类似于域对象  值栈:可以存值 也可以取值.

导入struts2的标签库     <%@ taglib prefix="s" uri="/struts-tags" %> 

在这里简单的介绍一下 关于它取值的一些区别:

package com.zking.action;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.util.ValueStack;
import com.zking.entity.person;

public class TestAction {
	/**
	 * person对象
	 */
	private person person;
	 
	
	public person getPerson() {
		return person;
	}

	/**
	 * person的list集合
	 */
    private List<person> lp;
 
	public List<person> getLp() {
	return lp;
   }
 
	/**
	 * 变量a
	 */
	 private  int a;
	 /**
	  * 变量b
	  */
	 private  int b;
	  
	 /**
	  * 为a b设置get封装
	  * @return
	  */
	public int getA() {
		return a;
	}

  
	public int getB() {
		return b;
	}

 


    /**
     * 默认的执行方法
     * @return
     */
	public String execute() {
		 //#表示不在struts堆栈里,没有#表示从struts堆栈里取
		 //值桟对象在ActionContext类中生成
		ActionContext actionContext=ActionContext.getContext();
		ValueStack vs=actionContext.getValueStack();
		vs.set("test", "张张");
		vs.set("test1", "张1");
		vs.push("李四");
		//vs 每访问一次action都会创建一个新的action对象 set和push的存值方法
		System.out.println(vs);
		person=new person();
		person.setUname("李妈");
		person.setSex("男");
		
		 
//	   1.#通常强调从上下文取 域对象存储在context里  放入域对象使用 setAttribute(key, value)
		HttpServletRequest sActionContext=ServletActionContext.getRequest();
		sActionContext.setAttribute("request", "request域对象里的值");
//		获取 :<s:property value="#域对象名.key名"/>
		
		
//		2.%{}强调的是从你设定的root点取  root结果是list集合
//		  %{}常用于计算表达式	
		lp=new ArrayList<>();
		lp.add(new person("制作儿童", "女"));
		lp.add(new person("TF", "男"));
		//如%{1+99}结果将输出100
		
		  
		
//		3.在域对象中使用%{#} 获取域对象中存储在root的值 
//		  比如%{#session.person.uname} 
//		  将获得person对象的 uname属性值
//		  %{#}仍然用于计算表达式,只不过操作元可以是变量
		a=10;b=10;
		sActionContext.setAttribute("a", a);
		sActionContext.setAttribute("b", b); 
		return "success";
	}
	
	
	

    }


 

运行的结果:

猜你喜欢

转载自blog.csdn.net/qqqnzhky/article/details/81879015
今日推荐