アドホックテンプレートを実行する1つの方法は、JSPの代わりにFaceletsを使用することです。これらはJSF 2.0(JEE6の予定)の一部となっているので、それらを考慮する良い時期だと思います。セッション・スコープで定義された
public class UlBean implements Serializable {
private static final long serialVersionUID = 1L;
private final List<LiBean> listItems = new ArrayList<LiBean>();
public UlBean() {
String[] links = { "http://www.sun.com", "Sun",
"http://www.oracle.com", "Oracle",
"http://www.ibm.com", "IBM",
"http://stackoverflow.com",
"<stackoverflow.com> & encoded output" };
for (int i = 0; i < links.length; i++) {
LiBean item = new LiBean();
item.setHref(links[i]);
item.setTitle(links[++i]);
listItems.add(item);
}
}
public List<LiBean> getListItems() {
return listItems;
}
}
...:
豆については、例えば
:
public class LiBean implements Serializable {
private static final long serialVersionUID = 1L;
private String href;
private String title;
public String getHref() { return href; }
public void setHref(String href) { this.href = href; }
public String getTitle() { return title; }
public void setTitle(String title) { this.title = title; }
}
...と
<managed-bean>
<managed-bean-name>ulBean</managed-bean-name>
<managed-bean-class>beans.UlBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
...とすることができますこのFaceletページで使用されています:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>repeat</title>
</head>
<body>
<ul>
<ui:repeat value="#{ulBean.listItems}" var="item">
<li><a href="#{item.href}"><h:outputText
value="#{item.title}" /></a></li>
</ui:repeat>
</ul>
</body>
</html>
...この出力を生成するために:あなたはJSPのに固執している場合
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>repeat</title>
</head>
<body>
<ul>
<li><a href="http://www.sun.com">Sun</a></li>
<li><a href="http://www.oracle.com">Oracle</a></li>
<li><a href="http://www.ibm.com">IBM</a></li>
<li><a href="http://stackoverflow.com"><stackoverflow.com> & encoded output</a></li>
</ul>
</body>
</html>
を、あなたがこれを行うようになるコア実装では何も(唯一の繰り返し制御があるがありませんdataTable)。 3rd party component librariesのいずれかに何かが見つかります。
JSFコンポーネントと標準HTMLを混在させてもFaceletsに問題はありません(f:verbatimの必要はありません)。必要に応じて、そのままリスト項目を追加することができます。 – Damo
さて、あなたはそれに注意する必要があります。 JSFには、Ajax呼び出しに関してHTMLタグとJSFタグを混在させるときに問題があります。私たちはこれまでに多くの問題を経験してきました。 –