我做的是一查询功能、 页面有几个文本框和下拉框的值作为条件 。我在servlet里用stringBuffer拼装了sql语句、
然后调用查询方法,把拼装好的sql传进去toString了一下,放入session会话里。然后用转发跳转至要展示的页面。
页面里用的是一个标签循环foreach、在循环放入的页面里有一个删除功能 。通过id删除、在实体类里id是int类型
但一运行就报什么id对于string类型找不到 。 这就不知道是怎么回事了。请高手指教指教!
然后调用查询方法,把拼装好的sql传进去toString了一下,放入session会话里。然后用转发跳转至要展示的页面。
页面里用的是一个标签循环foreach、在循环放入的页面里有一个删除功能 。通过id删除、在实体类里id是int类型
但一运行就报什么id对于string类型找不到 。 这就不知道是怎么回事了。请高手指教指教!
解决方案 »
- ssh2 action中的list如何转换成json然后传递给extjs tree 请高手帮忙 如何写action和extjs呀
- 用ibatis连的数据库报SQL command not properly ended的错是什么原因?求牛人解决!!!!万分感谢!!
- JavaEE怎么搭建开发环境
- 在线等待:一个关于在线聊天的问题,急!
- Hibernate缺少jar包,如何导入??
- 急!高手,大侠们请来!!VB如何调用WebService上的方法
- 这句话怎么翻译?
- 怎么样在多线程中,通过socket广播客户端信息
- 初级sql语句的问题 马上节帖
- 请问做过EJB项目的朋友。EJB真的那么难于控制吗。
- MyEclipse出错误啦!不知道怎么搞的啊!sos
- 如何用博客调用另一个网站首页
private int Stuid;
private String GradeName;
private int StuNo;
private String StuName;
private String sex;
private Date birthday;
private String hopy;这是实体类。每一个都是封装了的、
----------------------public List<StudentShow> getInfo(String sql)
{
List<StudentShow> list = new ArrayList<StudentShow>();
try {
//得到连接
conn=this.getConn();
//创建sql语句
//创建操作对象
ps=conn.prepareStatement(sql);
//zhix操作
rs=ps.executeQuery();
while(rs.next())
{
StudentShow st=new StudentShow();
st.setGradeName(rs.getString("GradeName"));
st.setStuNo(rs.getInt("StuNo"));
st.setStuName(rs.getString("StuName"));
st.setSex(rs.getString("sex"));
st.setStuid(rs.getInt("StuId"));
st.setHopy(rs.getString("Hopy"));
st.setBirthday(rs.getDate("Birthday"));
list.add(st);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
this.CloseAll(rs, ps, conn);
}
return list;
}
这是查询方法、需要一个sql
-------------------------------------<form action="SelectSer" method="post">
班级:<select name="gradename">
<option value="无">--请选择--</option>
<option value="Y2T89">Y2T89</option>
<option value="Y2T87">Y2T87</option>
</select>
姓名:<input type="text" name="name" />
出生年份:<select name="birthday" ><option value="无">--请选择--</option>
<option value="1988">1988</option>
<option value="1989">1989</option></select>
性别:<select name="sex"><option value="无">--请选择--</option>
<option value="男">男</option>
<option value="女">女</option></select>
<input type="submit" value="查询"/>
<table border="1" width="97%" align="center">
<thead>
<tr>
<th><input type="button" value="删除"/></th>
<th>班级名称</th>
<th>学号</th>
<th>学生姓名</th>
<th>性别</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:if test="${not empty sessionScope.list}">
<c:forEach var="test" items="&{sessionScope.list}">
<tr>
<td><input type="checkbox"/>${test.StuId}</td>
<td>${test.GradeName}</td>
<td>${test.StuNo}</td>
<td>${test.StuName}</td>
<td>${test.sex}</td>
<td>
<a href="detailStudent.jsp?num=${test.StuId}">查看</a>
<a href="updateStudent.jsp?num=${test.StuId}">修改</a>
<a href="left.jsp?num=${test.StuId}" onclick="confirm('确认删除吗?');">删除</a>
</td>
</tr>
</c:forEach>
</c:if>
这是页面的代码、 输入值后进入servlet、ServletSer这个类里处理方法
-------------------------------------------------------------
ListInfo li= new ListInfo();
String Gname=request.getParameter("gradename");
String name=request.getParameter("name");
String birthday=request.getParameter("birthday");
String sex=request.getParameter("sex");
StringBuffer sb=new StringBuffer();
sb.append("select * from StudentShow ");
if(!Gname.equals("无"))
{
sb.append(" where gradeName='"+Gname+"'");
}
if(!birthday.equals("无"))
{
sb.append(" and to_char(birthday,'YYYY')='"+birthday+"'");
}
if(name!=null && !name.equals(""))
{
//sb.append("and StuName like '"+"'%"+name+"%"+"'' ");
sb.append("and StuName like '"+"%"+name+"%"+"' ");
}
if(!sex.equals("无"))
{
sb.append("and sex='"+sex+"'");
}
List<StudentShow> list=li.getInfo(sb.toString());
request.getSession().setAttribute("list", list);
request.getRequestDispatcher("index.jsp").forward(request, response);这就是servlet。dopost里的代码、获取文本的值,然后判断进行拼接
报的错误时:javax.el.PropertyNotFoundException: Property 'StuId' not found on type java.lang.String
就是int类型的才对啊、我实体类里都是int类型 为何显示找不到string类型 、 很是让我费解啊。
假如对了,问题就出在这里
哥子、 这么低级的错误我是不会犯的。 数据库里的肯定是int 类型的。
哥子、 这么低级的错误我是不会犯的。 数据库里的肯定是int 类型的。
sb.append("select * from StudentShow ");
你把所有的值都放到StringBuffer里面了,再读取的时候就不是int类型的了,当然找不到了。