我想知道你是否可以指出我正确的方向,我有一个搜索方法,它工作正常,但我想显示找到的总结果,我想知道我是如何实现这样的
public List<Testpaper> Paper(String q)throws SQLException {
List<Testpaper> test = new ArrayList<Testpaper>();
if(ds==null)
throw new SQLException("Can't get data source");
//get database connection
Connection con = ds.getConnection();
if(con==null)
throw new SQLException("Can't get database connection");
PreparedStatement ps
= con.prepareStatement(
"select * from test where testname like ? or subject like ?;");
try {
ps.setString(1, "%" + q + "%");
ps.setString(2,"%"+ q + "%");
ResultSet result = ps.executeQuery();
while (result.next()) {
Testpaper testpaper = new Testpaper();
testpaper.setTestname(result.getString("testname"));
testpaper.setDescription(result.getString("description"));
testpaper.setDateuploaded(result.getDate("dateuploaded"));
testpaper.setLink(result.getString("link"));
testpaper.setYear(result.getString("year"));
testpaper.setSubject(result.getString("subject"));
test.add(testpaper);
}
} catch(Exception e1) {
}
finally{
try{
con.close();
}
catch(Exception e2) {
}
}
return test;
}
JSF代码
<h:dataTable value="#{search.test}" id="result" var="test"
rendered="#{not empty search.test}">
<h:column>
<a href="#{test.link}" title="Download">
<h3 style="font-size: medium;font-weight: normal;color: rgb(17, 34, 204);display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; ">
<h:outputText value="#{test.testname}" />
</h3>
</a>
<h:outputText value="Created by:Ainsley Hanson/Portmore Missionar Prep School"/>
<p style="line-height: 1.24;direction:rtl;width: 400px;">#{test.description}</p>
<div >
<h:outputText value="Test year: #{test.year}"
style="color:rgb(17, 34, 204);margin-right: 10px;"/>
<h:outputText value="Date Uploaded: #{test.dateuploaded}"
style="color:rgb(17, 34, );margin-right: 10px;">
<f:convertDateTime pattern="MM.dd.yyyy HH:mm" />
</h:outputText>
<h:outputText value="Subject : #{test.subject}"
style="font-weight:100;color:rgb(17, 34, 204);"/>
</div>
</h:column>
</h:dataTable>
我知道它应该显示在数据表之外,但是你应该从mysql获得结果。
答案 0 :(得分:2)
您可以使用JSTL fn:length()
函数获取EL中List#size()
的值。
<html ... xmlns:fn="http://java.sun.com/jsp/jstl/functions">
...
<p>Total results: #{fn:length(search.test)}</p>
答案 1 :(得分:0)
如果您使用的是EL 2.2,您可以简单地利用新的EL规格,打印结果如下:
Results count : #{search.test.size()}
答案 2 :(得分:0)
我更喜欢facelets size方法而不是使用JSTL:
像#{myBean.myList.size()}
这样的东西