使用超链接在jsp中类型转换变量
我正在JSP中创建一个超链接使用超链接在jsp中类型转换变量,jsp,casting,hyperlink,Jsp,Casting,Hyperlink,我正在JSP中创建一个超链接 <c:url var="viewweeklycertificationdetailsinquiry" value="/cwedetailsLink.do"> <c:param name="forwardName" value="weeklycertificationdetailsinquiry" /> <c:param name="cweId" value="${WorkSearchDetailsForm.cweID}" /&g
<c:url var="viewweeklycertificationdetailsinquiry" value="/cwedetailsLink.do">
<c:param name="forwardName" value="weeklycertificationdetailsinquiry" />
<c:param name="cweId" value="${WorkSearchDetailsForm.cweID}" />
<c:param name="claimId" value="${cininqform.claimId}" />
</c:url>
<tr>
<td>
<html:link href="${viewweeklycertificationdetailsinquiry}">
<bean:message key="access.cin.inq.monetary.view.weeklycertificationfilingdetails" />
</html:link>
</td>
</tr>
现在,当我点击超链接时,我得到了异常
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Long.parseLong(Long.java:431)
at java.lang.Long.<init>(Long.java:678)
at gov.state.uim.cin.struts.inq.WeeklyCertificationDetailsInquiryAction.load(WeeklyCertificationDetailsInquiryAction.java:107)
at gov.state.uim.framework.struts.CustomRequestProcessor.processLoadActionPerform(CustomRequestProcessor.java:681)
at gov.state.uim.framework.struts.CustomRequestProcessor.processload(CustomRequestProcessor.java:610)
at gov.state.uim.framework.struts.CustomRequestProcessor.processForwardConfig(CustomRequestProcessor.java:518)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at gov.state.uim.framework.struts.CustomActionServlet.process(CustomActionServlet.java:130)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
java.lang.NumberFormatException:用于输入字符串:“
位于java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
位于java.lang.Long.parseLong(Long.java:431)
位于java.lang.Long。(Long.java:678)
在gov.state.uim.cin.struts.inq.WeeklyCertificationDetailsInquiryAction.load上(WeeklyCertificationDetailsInquiryAction.java:107)
位于gov.state.uim.framework.struts.CustomRequestProcessor.processLoadActionPerform(CustomRequestProcessor.java:681)
位于gov.state.uim.framework.struts.CustomRequestProcessor.processload(CustomRequestProcessor.java:610)
位于gov.state.uim.framework.struts.CustomRequestProcessor.processForwardConfig(CustomRequestProcessor.java:518)
位于org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
位于org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
位于gov.state.uim.framework.struts.CustomActionServlet.process(CustomActionServlet.java:130)
位于org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
我必须在JSP中键入变量吗?如果是,怎么做
java.lang.NumberFormatException: For input string: ""
当传递空字符串或传递给Long
构造函数的字符串不可解析为Long时,将引发
因此,在您的示例中,cweId
和claimId
可能为null或空。最好使用一个条件来符合它,更改为:
Long cweId = null;
Long claimId = null;
String cweIdStr = request.getParameter("cweId");
String claimIdStr = request.getParameter("cweId");
if(cweIdStr!=null && !cweIdStr.isEmpty())
cweId = new Long(cweIdStr);
if(claimIdStr!=null && !claimIdStr.isEmpty())
claimId = new Long(claimIdStr);
另见:
检查我下面的答案。通过添加检查,可以确保不会发生nullpointerexception。我检查了打字,这很有效。无论如何,谢谢你的回复。
Long cweId = null;
Long claimId = null;
String cweIdStr = request.getParameter("cweId");
String claimIdStr = request.getParameter("cweId");
if(cweIdStr!=null && !cweIdStr.isEmpty())
cweId = new Long(cweIdStr);
if(claimIdStr!=null && !claimIdStr.isEmpty())
claimId = new Long(claimIdStr);