在网络应用中,我的servlet正在打印html,如下所示
protected void doGet( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException {
response.setContentType( "text/html" );
PrintWriter pw = response.getWriter();
pw.println( "<html><head></head><body>" );
printBody( pw );
pw.println( "</body></html>" );
}
其中printBody
是
private void printBody( PrintWriter pw ) {
pw.println( "<form id='pool' method='POST'>" );
pw.println( "<table>" );
pw.println( "<tr><th>Home Team</th><th>Away Team</th><th>Tiebreaker?</th></tr>" );
BettingPoolGame[] games = BettingPool.getGames();
for (int i = 0; i < games.length; i++) {
pw.println( "<tr><td><input name='home" + i + "' value='" + games[i].getHomeTeam() + "'></td>" );
pw.println( "<td><input name='away" + i + "' value='" + games[i].getAwayTeam() + "'></td>" );
pw.print( "<td><input type='radio' name='tiebreaker' value='" + i + "'" );
if (i == BettingPool.getTieBreakerIndex()) pw.print( " checked" );
pw.println( " /></td></tr>" );
}
pw.println( "</table>" );
if (BettingPool.isEditable()) {
pw.println( "<input type='submit' name='save' value='Save' />" );
pw.println( "<input type='submit' name='save' value='Open Pool' />" );
}
pw.println( "</form>" );
}
BettingPool
类有一些静态字段及其访问者
public class BettingPool {
private static int tieBreakerIndex;
...
public static int getTieBreakerIndex() {
return tieBreakerIndex;
}
...
}
我想使用jsp页面而不是printBody()方法并尝试使用
<body>
<jsp:useBean id="bettingpool" class="dyna.pool.BettingPool"></jsp:useBean>
<h3>pooleditorform</h3>
<form id='pool' method='POST'>
<table>
<tr><th>Home Team</th><th>Away Team</th><th>Tiebreaker?</th></tr>
<c:forEach items="${games}" var="x" varStatus="status">
<tr><td><input name='home${status.index}' value='${x._homeTeam}' ></td>
<td><input name='away${status.index }' value='${x._awayTeam}'></td>
<td><input type='radio' name='tiebreaker' value='${status.index}'/></td></tr>
<c:if test="${status.index == bettingpool.tieBreakerIndex}">
checked
</c:if>
</c:forEach>
</table>
<input type='submit' name='save' value='Save'/>
<input type='submit' name='save' value='Open Pool' />
</form>
</body>
然而,我收到的错误如
上找不到属性'tieBreakerIndex'
javax.el.PropertyNotFoundException
:在dyna.pool.BettingPool
类型
知道如何从jsp页面访问类的静态字段吗? 感谢
标记。
答案 0 :(得分:1)
只需删除static
方法,换句话说使其成为非静态getter方法。因为JSTL EL会查找标准访问器方法。
答案 1 :(得分:-1)
通过在顶部的jsp中添加类的导入,以不同的方式调用静态方法。
<%@ page import = "yourpackage.BettingPool" %>
.....
.....
<c:if test="${status.index == BettingPool.getTieBreakerIndex()}">
checked
</c:if>