下面是我的代码片段,我正在使用带有taglib的scriplets。
<display:column title="Modify">
<%String userType=(String)session.getAttribute("userType");
if(userType.equalsIgnoreCase("D"))
{
%>
<html:link action="/deleteOwner.do?type=del&owner_id=${data.owner_id}">Delete</html:link>
<%} else if(userType.equalsIgnoreCase("A")){%>
<c:if test="${data.type == 'A'}">
<html:link action="/deleteOwner.do?type=del&owner_id=${data.owner_id}">Delete</html:link>
</c:if>
</display:column>
<%}%>
但我得到了
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 280 in the generated java file
Syntax error, insert "while ( Expression ) ;" to complete DoStatement
答案 0 :(得分:1)
尽量不要将scriptlet与jstl混合使用。它只会让你头疼。而是使用choose / when / otherwise语句替换if / else语句。
对于equalsIgnoreCase()语句,您只需在userType上调用fn:toUpperCase即可进行比较。
使用EL,您可以使用$ {userType}
来提取userType参数