Struts2标签——数据的获取和输出

最近开始用Struts2框架,使用Struts2标签也成了家常便饭了,本章主要总结下在使用过程中数据的获取和输出。

可能会有所遗漏,也可能会有所谬误,希望大家多指点、多交流,在使用过程中能更加清晰、熟练。

本文中统一前缀为s。前缀可配置

想知道在前台哪些数据是能获取到的,使用<s:debug></s:debug>是一种非常不错的方式。我们在jsp中加上debug,那么在前台就会显示这个页面能够获取到的数据,我们可以看到数据主要分为两大类:Value Stack Contents和Stack Context

  • Value Stack Contents:值栈,存放表单中的值。ValueStack里面的东西先入后出,很多没有id的元素使用完之后就退栈了。可以直接引用,例如:

User类:

package com.dpc.test;



import java.util.Date;



public class User {

	private Long id;

	private String name;

	private Date date;

	public Date getDate() {

		return date;

	}

	public void setDate(Date date) {

		this.date = date;

	}

	public Long getId() {

		return id;

	}

	public void setId(Long id) {

		this.id = id;

	}

	public String getName() {

		return name;

	}

	public void setName(String name) {

		this.name = name;

	}

}

action中

package com.dpc.test;



public class UserAction {

	private User user;

	private String searchName;

	public String getSearchName() {

		return searchName;

	}

	public void setSearchName(String searchName) {

		this.searchName = searchName;

	}

	public User getUser() {

		return user;

	}

	public void setUser(User user) {

		this.user = user;

	}

}

在JSP中取得user对象中的内容和searchName如下:

<s:textfield name="user.name" id="name" />



<s:hidden name="user.id" id="id" />



<s:textfield name="searchName" id="searchName" />



输出:<s:property value="%{user.name}" />     <s:property value="%{searchName}" />

日期格式化输出,必须是Date类型的才能使用如下方式:

<s:date name="user.date" format="yyyy-MM-dd" />
  • StackContext:stack上下文,它包含一些列对象,包括request/session/attr/application map等,这些命名对象与根对象无关,访问这些对象需要使用#前缀指明。

request中的值:

<%request.getAttribute("name", "xxxx");%>

获取:%{#request.name}

输出:<s:property value="#request.name"/>

session中的值:

<%session.getAttribute("name");%>

<s:property value="#session.name"/>

parameters中的值(传递的参数值):

<%request.getParameter("name");%>

<s:property value="#parameters.name[0]"/>

 


参考文档:

WebWork 2.0 Tags

Struts2 Core 2.1.8.1


 

 

你可能感兴趣的:(struts2标签)