struts2.2.1中运用action类时遇到的奇怪现象~~汗~

来源:互联网 发布:怎么看算法导论这本书 编辑:程序博客网 时间:2024/05/21 06:27

CategoryAction.action代码如下

我的jsp页面:

浏览器错误信息如下(部分):

Struts Problem Report

Struts has detected an unhandled exception:

Messages:
  1. com.itnetwork.Action.CategoryAction.cId
  2. Caught an exception while getting the property values of com.itnetwork.Action.CategoryAction@1c4d594
  3. Caught an exception while getting the property values of com.itnetwork.Action.CategoryAction@1c4d594 - Class: ognl.ObjectPropertyAccessor File: ObjectPropertyAccessor.java Method: getProperty Line: 151 - ognl/ObjectPropertyAccessor.java:151:-1
File:ognl/ObjectPropertyAccessor.javaLine number:151

Stacktraces

org.apache.jasper.JasperException: Caught an exception while getting the property values of com.itnetwork.Action.CategoryAction@1c4d594 - Class: ognl.ObjectPropertyAccessor File: ObjectPropertyAccessor.java Method: getProperty Line: 151 - ognl/ObjectPropertyAccessor.java:151:-1
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)    org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)    org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)    org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)控制台信息如下:
严重: Servlet.service() for servlet jsp threw exception
ognl.NoSuchPropertyException: com.itnetwork.Action.CategoryAction.cId
 at ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:151)
 at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.getProperty(ObjectAccessor.java:17)
 at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:2230)
 at ognl.ASTProperty.getValueBody(ASTProperty.java:114)
 at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
 at ognl.SimpleNode.getValue(SimpleNode.java:258)
 at ognl.Ognl.getValue(Ognl.java:494)
 at ognl.Ognl.getValue(Ognl.java:458)
 at com.opensymphony.xwork2.ognl.OgnlUtil.getBeanMap(OgnlUtil.java:363)
以上错误根据输出的信息看,个人认为是找不到cId属性,晕死!怎么会找不到呢?有get,set方法(方法是我用myeclipse8.5自动生成的,可他妈的怎么就给我生成getcId(),setcId(),而不是生成getCId()呢?错误就是因为这),
我把它手动改成getCId形式,就好了!但是又有个问题出现!我百思不得其解,所以特以此记录下来,等以后再分析分析!
在前台看debug信息,信息如下(我已经把getcId改成getCId形式,set也是):
[[13,"category11"],[14,"category12"],[15,"category13"],[18,"category11"],[19,"category12"],[20,"category13"]] 

[Debug]

Struts ValueStack Debug

 

Value Stack Contents

ObjectProperty NameProperty Valuecom.itnetwork.Action.CategoryActiontextsnullcomboboxModelSt[[13,"category11"],[14,"category12"],[15,"category13"],[18,"category11"],[19,"category12"],[20,"category13"]]actionErrors[]errors{}fieldErrors{}errorMessages[]categoryServiceImpcom.itnetwork.ServiceImp.CategoryServiceImp@b245dccontainerThere is no read method for containerlocalezh_CNactionMessages[]CId0com.opensymphony.xwork2.DefaultTextProvidertextsnull

 

Stack Context

我的疑惑!comboboxModelSt怎么就会是头字母小写,但对比CId,从上面看CId属性,怎么就不是cId属性呢??

后来我把属性cId改成cid,就是不要首字母小写,接着大写这种形式命名属性,然后用myeclipse8.5自动生成,结果正常,生成的get,set方法也正常(getCid)

前台查看debug信息,属性名也正常(cid)!

暂时还没解决这个疑惑!先总结,定义属性事,不要在第二个字母用大写这形式!