字符串处理问题

sxlcom 2007-05-28 05:48:31
代码如下:
<%
List Form_deflist = (List) request.getAttribute("Form_deflist");

%>
<table width="100%" border="1" cellpadding="3" cellspacing="0"
bordercolor="#000000" class="cpx12hei" bordercolordark="#FFFFFF">
<tr >
<td width="23%" align="right" bgcolor="EFFDFF">填表优先级:</td>
<td height="23" bgcolor="#FFFFFF">请选择填表优先级:</td>
</tr>

<%
out.println( request.getParameter("write_pri")) ;
String write_pri=request.getParameter("write_pri");


int write_pri1= write_pri.length();
int write_pri2= (write_pri1+1)/2;
if (Form_deflist.size() > 0) {
HashMap hm = new HashMap();

for (int i = 0; i < Form_deflist.size(); i++) {
hm = (HashMap) Form_deflist.get(i);
if (!write_pri.equals("") || !write_pri.equals(null)){
if (write_pri.substring(0,1).equals(String.valueOf(i+1)) ){
if (!write_pri.substring(2,write_pri1).equals("")){
write_pri=write_pri.substring(2,write_pri1);
out.println("write_pri: "+ write_pri.substring(11,write_pri1)) ;
}else {
write_pri="";
}




%>
<tr>
<td width="23%"> <td height="23" bgcolor="#FFFFFF"><INPUT TYPE="CHECKBOX" NAME="write_pri" VALUE="write_pri" checked=true><%=hm.get("form_name")%></td></td>
</tr>
<%
}else { %>
<tr>
<td width="23%"> <td height="23" bgcolor="#FFFFFF"><INPUT TYPE="CHECKBOX" NAME="write_pri" VALUE="write_pri" ><%=hm.get("form_name")%></td></td>
</tr>
<%
}
}
}
}

%>

-----------------------------------------------
out.println( request.getParameter("write_pri")) ;传值显示:1,2,3,4,5,6
再跳到该页tomcat提示:org.apache.jasper.JasperException: String index out of range: 11


...全文
164 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxlcom 2007-05-28
  • 打赏
  • 举报
回复
如果判断是否为空以下语句有问题吗
if (!write_pri.substring(2,write_pri1).equals("")){
sxlcom 2007-05-28
  • 打赏
  • 举报
回复
out.println( request.getParameter("write_pri")) ;传值显示:1,2,3,4,5,6

最后一位为10对应用6
11位为空
sxlcom 2007-05-28
  • 打赏
  • 举报
回复
但我加处理了呀
for (int i = 0; i < Form_deflist.size(); i++) {
hm = (HashMap) Form_deflist.get(i);
if (!write_pri.equals("") || !write_pri.equals(null)){
if (write_pri.substring(0,1).equals(String.valueOf(i+1)) ){
if (!write_pri.substring(2,write_pri1).equals("")){
write_pri=write_pri.substring(2,write_pri1);
out.println("write_pri: "+ write_pri.substring(11,write_pri1)) ;
}else {
write_pri="";
}
晨星 2007-05-28
  • 打赏
  • 举报
回复
操纵字符串的下标溢出了。是不是你执行substring之后,截取下来的字符串没那么长了?
sxlcom 2007-05-28
  • 打赏
  • 举报
回复
如果把下面语句注示就没问题
write_pri=write_pri.substring(2,write_pri1);

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧