`
fslingmo
  • 浏览: 25726 次
  • 性别: Icon_minigender_2
  • 来自: 厦门
社区版块
存档分类
最新评论

struts 使用POJO应注意的一点

阅读更多

对于提交数据比较多的表单,为了避免大量地在FormBean里面使用大量的变量及setter和getter方法,从Struts1.2和Struts1.3起,FormBean中可以使用POJO,提交数据后将直接把数据赋给POJO。

 

 

public class UserBeanForm extends ActionForm {
	private Person person = new Person();
	private String action;
	public Person getPerson() {
		return person;
	}
	public void setPerson(Person person) {
		this.person = person;
	}
	public String getAction() {
		return action;
	}
	public void setAction(String action) {
		this.action = action;
	}

 

 

提示:Struts不会自动创建POJO对象,这里需要用new实例化一个Person对象,否则为Person设置属性时,结合jsp页面会抛出以下错误:

 

 

严重: Servlet.service() for servlet [jsp] in context with path [/struts1] threw exception [javax.servlet.ServletException: javax.servlet.jsp.JspException: Invalid argument looking up property: "person.name" of bean: "org.apache.struts.taglib.html.BEAN"] with root cause
javax.servlet.jsp.JspException: Invalid argument looking up property: "person.name" of bean: "org.apache.struts.taglib.html.BEAN"
	at org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:887)
	at org.apache.struts.taglib.html.BaseFieldTag.prepareValue(BaseFieldTag.java:123)
	at org.apache.struts.taglib.html.BaseFieldTag.renderInputElement(BaseFieldTag.java:102)
	at org.apache.struts.taglib.html.BaseFieldTag.doStartTag(BaseFieldTag.java:80)
	at org.apache.jsp.userInfo_jsp._jspx_meth_html_005ftext_005f0(userInfo_jsp.java:224)
	at org.apache.jsp.userInfo_jsp._jspx_meth_html_005fform_005f0(userInfo_jsp.java:148)
	at org.apache.jsp.userInfo_jsp._jspService(userInfo_jsp.java:116)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1824)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)

 

看似是jsp的错误,但是实际上是没有创建POJO的错误。

分享到:
评论

相关推荐

    Struts2 Pojo(六)

    NULL 博文链接:https://takeme.iteye.com/blog/1629940

    struts1.0和struts2

    Struts1的一个普遍问题是使用抽象类编程而不是接口。 ◆Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现 常用的接口。Action...

    Struts1与Struts2本质区别

    Struts 1的一个具体问题是使用抽象类编程而不是接口。Struts 2 Action类可以实现一个Action接口,也可以实现其他接口,使可选和定制的服务成为可能。Struts 2提供一个ActionSupport基类去实现常用的接口。即使Action...

    POJO In action 代码

    POJO In action 代码 POJO In action 代码 POJO In action 代码

    struts2配置详解

    1、Struts1 里使用 ActionServlet 作为控制器; Struts2 使用了一个过滤器作为控制器 2、Struts1 中每个 HTML 表单都对应一个 ActionForm 实例. Struts2 中, HTML 表单将被直接映射到一个 POJO. 3、Struts1 的验证...

    POJO转Map.txt

    POJO转Map代码,POJO转Map代码POJO转Map代码POJO转Map代码

    SSM笔记-POJO

    SSM笔记-POJO,测试POJO,SpringMVC会根据请求参数名和POJO类的属性名自动匹配为对应对象填充值

    android databinding 插件

    使用pojo类来生成binding的布局文件代码,使用pojo类来生成binding的布局文件代码,

    birt_POJO作数据源

    学习百灵报表的童鞋们推荐必看,使用pojo作为数据源

    netty pojo 文档

    netty pojo netty pojo替换 channelbuffer

    利用Mybatis逆向工程来生成pojo和mapper

    利用Mybatis逆向工程来生成pojo,dao和mapper。然后将pojo实体类和dao拷贝到工程当中。这样可以快速地实现数据库的开发

    Mybatis生成pojo插件

    Mybatis pojo插件生成工具 把包下载下来,配置到eclipse中,project new 可以看到mybatis插件已经安装好

    Struts2的特点

    2、action是一个pojo,所以struts2.0与框架的藕合度非常低。 实现Action时有时会继承于ActionSupport, 覆盖execute方法,从而创建一个Action。 因为ActionSupport提供了很多方法可以为开发提供方便。 3、...

    POJO javaBean EJB JNDI 理解及区别

    POJO javaBean EJB JNDI 理解及区别

    pojo类生成器动态演示图片

    做Maven项目工程时,往往需要使用Pojo类来封装查询的sql信息 PojoCreator4j可以解决需要不断手敲字段的机械录入工作特别适用于字段多、类型多、数据表多的情况

    json2pojo功能有点麻烦

    参照https://github.com/joelittlejohn/jsonschema2pojo/wiki/Getting-Started的步骤Using jsonschema2pojo within your Java project (embedded)

    深入浅出struts2

    Struts2中的Action都是POJO,这一方面增强了Action本身的可测试性,另一方面也减小了框架内部的耦合度,而HTML表单中的输入项都被转换成了恰当的类型以供action使用。开发人员还可以通过拦截器(可以自定义拦截器...

    hibernate生成pojo

    hibernate生成pojo

    自己使用Swing实现的POJOGenerator(POJO代码生成器 v1.2)

    需要注意的一点是ref属性表示引用同一映射方案的另一 映射,这样您便可以简化同一映射数据类型的配置;而import属性是指定需要在最终 生成的源代码中作为类最开始的package类型导入声明部分的导入类型名称,因此,这...

    POJO Class

    This is a easy POJO class!

Global site tag (gtag.js) - Google Analytics