ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Struts2でBeanの配列を表示する際、Beanのある項目値によって表示方法を変えたい

2013-10-02 14:54:27 | JavaとWeb
具体的には以下のIchiranBean
package s2bean;

public class IchiranBean {
	private String s1;
	private String s2;

	public String getS1() {
	    return s1;
	}

	public void setS1(String s1) {
	    this.s1 = s1;
	}

	public String getS2() {
	    return s2;
	}

	public void setS2(String s2) {
	    this.s2 = s2;
	}
}

があって、以下のactionで、このBeanに値をセットして、配列にしている

package s2demo;

import java.util.*;
import org.apache.struts2.interceptor.SessionAware;
import s2bean.IchiranBean;

public class ExeAction implements SessionAware {

private Map<String, Object> sessionMap;
@Override
public void setSession(Map<String, Object> sessionMap) {
this.sessionMap = sessionMap;
}

private ArrayList<IchiranBean> data = new ArrayList<IchiranBean>();
public ArrayList<IchiranBean> getData() {
return data;
}
public void setData(ArrayList<IchiranBean> data) {
this.data = data;
}

public String execute() throws Exception {

for(int i = 0 ; i < 5 ; i++)
{
IchiranBean ib = new IchiranBean();
ib.setS1("1");
if ( i%2 == 0)
{
ib.setS2("Active");
}
else
{
ib.setS2("inactive");
}
}
sessionMap.put("data", data);

return "success";
}
}
</pre>



このとき、data(=Beanの配列)の内容をJSPで書き出すんだけど、
s2の値がActiveだったら、赤字にしたいというもの。

こんなかんじで、iteratorタグとifタグで書ける


<%@ page language="java" contentType="text/html; charset=windows-31j"
pageEncoding="windows-31j" import="java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
<title>Insert title here</title>
</head>
<body>
<s:iterator value="data" status="st">
<s:property value="s1"/>,

<s:if test='%{s2 == "Active"}'>
<font color=red>
</s:if>

<s:property value="s2"/>,

<s:if test='%{s2 == "Active"}'>
</font>
</s:if>

</s:iterator>
</body>
</html>



いじょう・・



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする