struts求助,望高手指点

qjhaaaaa 2003-10-09 09:28:04
我在TrainHead.java文件中写了一个方法
public Collection showDeptName() throws Exception{
getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
String sql = null;
ArrayList arrayList = new ArrayList();
try{
sql = "select * from Btbl_OrganizationInfo order by DeptName";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
TrainHeadForm trainHeadForm =new TrainHeadForm();
trainHeadForm.setDeptName(rs.getString("DeptName"));
arrayList.add(trainHeadForm);
arrayList.add(new LabelValueBean(rs.getString("DeptName"),rs.getString("OrganizationID")));
arrayList.add(new LabelValueBean(rs.getString("OrganizationID"),rs.getString("DeptName")));
}
}catch(Exception ex){
System.out.println("error call showDeptName():" + ex.getMessage());
}finally{
if(conn != null) conn.close();
if(ps != null) ps.close();
if(rs != null) rs.close();
}
return arrayList;
}

在execute方法中我是这样写的
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse)
throws Exception{

TrainHeadForm trainHeadForm =(TrainHeadForm)actionForm;
if (trainHeadForm.getOperate().equals("addTrainHead"))
{
Collection DeptName = showDeptName();
HttpSession session = httpServletRequest.getSession();
session.setAttribute("deptName",DeptName);

httpServletRequest.setAttribute("deptName",DeptName);
if (DeptName.size()>0)
trainHeadForm.setDeptName(((LabelValueBean)(((ArrayList)(DeptName)).get(0))).getValue());
httpServletRequest.setAttribute(actionMapping.getAttribute(), trainHeadForm);
}
return (actionMapping.findForward("addTrainHead"));
}
}

为了在trainHeadAdd.jsp中显示一个部门的名称,我将其struts标签写成
<html:select name ="trainHeadForm" property="DeptName">
<html:options collection ="deptName" property ="value" labelProperty ="label"/>
</html:select>

为什么系统总是报这样的错误
ApplicationDispatcher[/struts]: Servlet.service() for servlet debugjsp threw exception

org.apache.jasper.JasperException: No getter method available for property DeptName for bean under name trainHeadForm

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)

at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:432)

at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:356)

at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)

at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)

at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)

at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1480)

at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:506)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)

at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)

at java.lang.Thread.run(Thread.java:536)

有些不明白,望师兄指点
...全文
36 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
squallzeng 2003-10-09
  • 打赏
  • 举报
回复
把你的下面的代码改成
<html:select name ="trainHeadForm" property="DeptName">
<html:options collection ="deptName" property ="value" labelProperty ="label"/>
</html:select>
如下的
<html:select name ="trainHeadForm" property="value(rs_DeptName)">
<html:options collection ="deptName" property ="value" labelProperty ="label"/>
</html:select>
还有要注意的是,你的property里的字段名子一定要跟数据库里的要相同才可以的

67,513

社区成员

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

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