第一个文件 body.html
点确定提交到第二个页面displayBody.jsp
想实现的功能就是:写一个自定义标签:把输入textarea的文本格式化,如过
是奇数行就小写,偶数行就大写,下面是display.tag代码
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ tag body-content="scriptless"%>
<%@ attribute name="row" rtexprvalue="true" required="true" %>
<jsp:doBody var="thebody" scope="session"/>
<%
String str = (String)session.getAttribute("theBody");
int row = Integer.parseInt((String)session.getAttribute("row"));
int maxLengthOfRow = (str.length()/row)+1;
%>
<c:forEach items="${row}" varStatus="status">
<c:choose>
<c:when test="${(status.count%2)!=0}">
<c:choose>
<c:when test="<%=str.length()<=maxLengthOfRow%>">
<c:out value="<%=str.toLowerCase()%>"/>
</c:when>
<c:otherwise>
<c:out value="<%=(str.substring(0,maxLengthOfRow)).toLowerCase()%>"/>
<% str = str.substring(maxLengthOfRow,str.length());%>
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<c:choose>
<c:when test="<%=str.length()<=maxLengthOfRow%>">
<c:out value="<%=str.toUpperCase()%>"/>
</c:when>
<c:otherwise>
<c:out value="<%=(str.substring(0,maxLengthOfRow)).toUpperCase()%>"/>
<% str = str.substring(maxLengthOfRow,str.length());%>
</c:otherwise>
</c:choose>
</c:otherwise>
</c:choose>
</c:forEach>
抛出以下异常
javax.servlet.ServletException: javax.servlet.jsp.JspException: null
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:842)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.displayBody_jsp._jspService(org.apache.jsp.displayBody_jsp:61)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
org.apache.jsp.tag.web.display_tag.doTag(org.apache.jsp.tag.web.display_tag:88)
org.apache.jsp.displayBody_jsp._jspx_meth_d_display_0(org.apache.jsp.displayBody_jsp:77)
org.apache.jsp.displayBody_jsp._jspService(org.apache.jsp.displayBody_jsp:51)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
[此贴子已经被作者于2006-11-3 21:33:12编辑过]