天天看点

jsp 页面获取action 属性的方法

1、代码法

<%
    		ValueStack valueStack = (ValueStack)request.getAttribute("struts.valueStack");
    		String[] books = (String[])valueStack.findValue("books");
    		for(String book : books){
    	%>
    	<tr>
    		<td>BookName:</td>
    		<td><%=book%></td>
    	</tr>
    	<%
    		}
    	%>
           

这样虽然不好看,但是以后将HT 组件对象化后操作,用得上。

示例——actioin

public class GetBooksAction implements Action{
	private String[] books;

	public String[] getBooks() {
		return books;
	}

	public void setBooks(String[] books) {
		this.books = books;
	}
	
	public String execute() throws Exception{
		String user = (String)ActionContext.getContext().getSession().get("user");
		if( user != null && user.equals("gqltt") ){
			BookService bookService = new BookService();
			setBooks(bookService.getBooks());
			
			return SUCCESS;
		}
		return LOGIN;
	}
}
           

示例——jsp

<body>
    <table>
    	<caption>Show Books</caption>
    	<%
    		ValueStack valueStack = (ValueStack)request.getAttribute("struts.valueStack");
    		String[] books = (String[])valueStack.findValue("books");
    		for(String book : books){
    	%>
    	<tr>
    		<td>BookName:</td>
    		<td><%=book%></td>
    	</tr>
    	<%
    		}
    	%>
    </table>
  </body>
           

注意加入:<%@ page import="com.opensymphony.xwork2.util.*" %>

2、标签法

<s:iterator value="books" status="st">
	<s:if test="#st.odd == true">
		<tr style="background-color:#cccccc">
	</s:if>
	<s:else>
		<tr>
	</s:else>
			<td><s:property/></td>
		</tr>
</s:iterator>
           

对 status 属性的 深入操作,给其 index 属性添加一个固定值

<s:iterator value="listDouble" status="st">
	<s:property value="#st.index + 4"/>
	<s:property/><br/>
</s:iterator>