从servlet到jsp。由于AllPost是一个列表,并且我会继续阅读,因此我不知道这是否与我在此处给出的内容相去不远。 同时,我在类内部解决了问题,即在值到达servlet&jsp之前,如下所示。 因此,目前我不知道进一步尝试是否有意义。
提前谢谢!
<c:forEach items="${AllPost}" var ="p">
<tr>
<%! int len = Integer.valueOf(${p.detail.length()}); %>
<%
if(len<25){
${p.detail}.concat("....");
}
%>
<td>${p.detail.substring(0,25)}...</td>
例程类中的第二个选项代码:
ResultSet rs = DB.getPreparedStatement(SQL).executeQuery();
while(rs.next()){
News n = new News(rs.getInt(1),...);
if(Integer.valueOf(rs.getString(1.length())<25){
String sz = n.getDetail().concat(".........................");
n.setDetail(sz);
}
答案 0 :(得分:0)
<%! int len = Integer.valueOf(${p.detail.length()}); %>
在这里,您要混合使用EL和scriptlet,无法同时使用。不仅如此,您还在代码中使用了JSTL,但仍然使用scriptlet吗?在几乎所有情况下,如果您使用的是JSTL和EL,则无需使用任何scriptlet。 Scriptlet是使用JSP的一种古老的方式。
您的第一个选项的代码应类似于以下内容(无脚本):
<c:forEach items="${AllPost}" var ="p">
<tr>
<c:if test="${fn:length(p.detail) lt 25}">
<td>${p.detail}...</td>
</c:if>
<c:if test="${fn:length(p.detail) gt 25}">
<td>${fn:substring(p.detail, 0, 25)}...</td>
</c:if>
</tr>
</c:forEach>
请确保将其包含在jstl函数的页面顶部(如果还没有的话)
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>