0 0

seam中复合主键调用问题5

在表form中有三个主键:formid,tabid,operaid
要在页面中可以按照这三个主键中的任意一个查询表中的信息,程序执行后报错:javax.el.PropertyNotFoundException: /FormList.xhtml @23,75 value="#{formList.form.formid}": Property 'formid' not found on type app.ejb.domain.ProjectsManager_SEAM.model.Form

现在有两个实体类,分别是Form.java和Form.java
类定义如下:
package app.ejb.domain.ProjectsManager_SEAM.model;
// Generated 2008/07/03 12:51:58 by Hibernate Tools 3.2.0.b10

import java.util.Date;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Version;
import org.hibernate.validator.Length;
import org.hibernate.validator.NotNull;

/**
 * Form generated by hbm2java
 */
@Entity
@Table(name = "form", catalog = "projectsmanager")
public class Form implements java.io.Serializable {

	private FormId id;
	private Date timestamp;
	private String formname;
	private String tabname;
	private char delflg;
	private String lastupdateuser;
	private Date lastupdatetime;
	private String lastupdatehost;

	public Form() {
	}

	public Form(FormId id, String formname) {
		this.id = id;
		this.formname = formname;
	}
	public Form(FormId id, String formname, String tabname, char delflg,
			String lastupdateuser, Date lastupdatetime, String lastupdatehost) {
		this.id = id;
		this.formname = formname;
		this.tabname = tabname;
		this.delflg = delflg;
		this.lastupdateuser = lastupdateuser;
		this.lastupdatetime = lastupdatetime;
		this.lastupdatehost = lastupdatehost;
	}

	@EmbeddedId
	@AttributeOverrides({
			@AttributeOverride(name = "formid", column = @Column(name = "FORMID", nullable = false, length = 8)),
			@AttributeOverride(name = "tabid", column = @Column(name = "TABID", nullable = false, length = 8)),
			@AttributeOverride(name = "operaid", column = @Column(name = "OPERAID", nullable = false, length = 4))})
	@NotNull
	public FormId getId() {
		return this.id;
	}

	public void setId(FormId id) {
		this.id = id;
	}
	@Version
	@Column(name = "TIMESTAMP", nullable = false, length = 0)
	@NotNull
	public Date getTimestamp() {
		return this.timestamp;
	}

	public void setTimestamp(Date timestamp) {
		this.timestamp = timestamp;
	}

	@Column(name = "FORMNAME", nullable = false, length = 40)
	@NotNull
	@Length(max = 40)
	public String getFormname() {
		return this.formname;
	}

	public void setFormname(String formname) {
		this.formname = formname;
	}

	@Column(name = "TABNAME", length = 30)
	@Length(max = 30)
	public String getTabname() {
		return this.tabname;
	}

	public void setTabname(String tabname) {
		this.tabname = tabname;
	}

	@Column(name = "DELFLG", length = 1)
	@Length(max = 1)
	public char getDelflg() {
		return this.delflg;
	}

	public void setDelflg(char delflg) {
		this.delflg = delflg;
	}

	@Column(name = "LASTUPDATEUSER", length = 10)
	@Length(max = 10)
	public String getLastupdateuser() {
		return this.lastupdateuser;
	}

	public void setLastupdateuser(String lastupdateuser) {
		this.lastupdateuser = lastupdateuser;
	}

	@Column(name = "LASTUPDATETIME", length = 0)
	public Date getLastupdatetime() {
		return this.lastupdatetime;
	}

	public void setLastupdatetime(Date lastupdatetime) {
		this.lastupdatetime = lastupdatetime;
	}

	@Column(name = "LASTUPDATEHOST", length = 30)
	@Length(max = 30)
	public String getLastupdatehost() {
		return this.lastupdatehost;
	}

	public void setLastupdatehost(String lastupdatehost) {
		this.lastupdatehost = lastupdatehost;
	}

}



package app.ejb.domain.ProjectsManager_SEAM.model;
// Generated 2008/07/03 12:51:58 by Hibernate Tools 3.2.0.b10

import javax.persistence.Column;
import javax.persistence.Embeddable;
import org.hibernate.validator.Length;
import org.hibernate.validator.NotNull;

/**
 * FormId generated by hbm2java
 */
@Embeddable
public class FormId implements java.io.Serializable {

	private String formid;
	private String tabid;
	private String operaid;

	public FormId() {
	}

	public FormId(String formid, String tabid, String operaid) {
		this.formid = formid;
		this.tabid = tabid;
		this.operaid = operaid;
	}

	@Column(name = "FORMID", nullable = false, length = 8)
	@NotNull
	@Length(max = 8)
	public String getFormid() {
		return this.formid;
	}

	public void setFormid(String formid) {
		this.formid = formid;
	}

	@Column(name = "TABID", nullable = false, length = 8)
	@NotNull
	@Length(max = 8)
	public String getTabid() {
		return this.tabid;
	}

	public void setTabid(String tabid) {
		this.tabid = tabid;
	}

	@Column(name = "OPERAID", nullable = false, length = 4)
	@NotNull
	@Length(max = 4)
	public String getOperaid() {
		return this.operaid;
	}

	public void setOperaid(String operaid) {
		this.operaid = operaid;
	}

	public boolean equals(Object other) {
		if ((this == other))
			return true;
		if ((other == null))
			return false;
		if (!(other instanceof FormId))
			return false;
		FormId castOther = (FormId) other;

		return ((this.getFormid() == castOther.getFormid()) || (this
				.getFormid() != null
				&& castOther.getFormid() != null && this.getFormid().equals(
				castOther.getFormid())))
				&& ((this.getTabid() == castOther.getTabid()) || (this
						.getTabid() != null
						&& castOther.getTabid() != null && this.getTabid()
						.equals(castOther.getTabid())))
				&& ((this.getOperaid() == castOther.getOperaid()) || (this
						.getOperaid() != null
						&& castOther.getOperaid() != null && this.getOperaid()
						.equals(castOther.getOperaid())));
	}

	public int hashCode() {
		int result = 17;

		result = 37 * result
				+ (getFormid() == null ? 0 : this.getFormid().hashCode());
		result = 37 * result
				+ (getTabid() == null ? 0 : this.getTabid().hashCode());
		result = 37 * result
				+ (getOperaid() == null ? 0 : this.getOperaid().hashCode());
		return result;
	}

}



下面是页面显示代码:
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
                             "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:s="http://jboss.com/products/seam/taglib"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:rich="http://richfaces.org/rich"
                template="layout/template.xhtml"
                xmlns:a4j="http://richfaces.org/a4j">

<ui:define name="body">
    
    <h:messages globalOnly="true" styleClass="message" id="globalMessages"/>
    
    <h:form id="formSearch" styleClass="edit">
    
        <rich:simpleTogglePanel label="#{messages.comm_search}" switchType="ajax">

            <s:decorate template="layout/display.xhtml">
                <ui:define name="label">#{messages.form_formid}</ui:define>
                <h:inputText id="formid" value="#{formList.form.formid}"/>
            </s:decorate>
            
            <s:decorate template="layout/display.xhtml">
                <ui:define name="label">#{messages.form_formname}</ui:define>
                <h:inputText id="formname" value="#{formList.form.formname}"/>
            </s:decorate>
            
            <s:decorate template="layout/display.xhtml">
                <ui:define name="label">#{messages.form_tabname}</ui:define>
                <h:inputText id="tabname" value="#{formList.form.tabname}"/>
            </s:decorate>
                                    
        </rich:simpleTogglePanel>
        
        <div class="actionButtons">
            <h:commandButton id="search" value="#{messages.comm_search}" action="/FormList.xhtml"/>
        </div>
        
    </h:form>
    ......
</ui:define>
</ui:composition>


以下是配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<page xmlns="http://jboss.com/products/seam/pages"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.0.xsd">
      
   <param name="firstResult" value="#{formList.firstResult}"/>
   <param name="order" value="#{formList.order}"/>
   <param name="fromList"/>
   <param name="formid" value="#{formList.form.id.formid}"/>
   <param name="tabid" value="#{formList.form.id.tabid}"/>
   <param name="operaid" value="#{formList.form.id.operaid}"/>
   <param name="formname" value="#{formList.form.formname}"/>
   <param name="tabname" value="#{formList.form.tabname}"/>

</page>



2008年7月31日 14:46
目前还没有答案

相关推荐

    SEAM 中文开发指南

    - **工作原理**:此示例展示了如何使用 SEAM 的工作空间管理功能来实现问题跟踪系统。 ##### 1.9 结合Seam和Hibernate的示例:Hibernate预订系统 - **代码分析**:利用 SEAM 和 Hibernate 实现宾馆预订系统。 - *...

    jboss seam 中文文档集合

    JFreeChart-1.0.5-Ch.chm提供了详细教程和示例,帮助开发者利用JFreeChart在Seam应用中展示数据。 **7. ANTLR** ANTLR 是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。ANTLR中文...

    seam 中文文档 pdf

    seam 中文文档 pdf 格式 JSF+EJB3.0快速开发框架Seam的中文版向导。。。

    JBOSS SEAM组件中文手册

    Seam的主要目标是减少开发中的样板代码,提高生产力,同时保持灵活性和可扩展性。 **二、Seam核心概念** 1. **组件(Components)**: Seam的核心是组件模型,它允许开发者定义和管理应用中的对象。组件可以是简单的...

    seam的注解和标签

    下面我们将详细讨论Seam中的注解以及与之相关的标签。 1. **Seam注解** - `@Name`: 这是Seam的核心注解,用于为组件定义一个唯一的名字。这个名字可以在JSF视图、表达式语言(EL)或者Seam的事件系统中引用。 -...

    seam需要的jar包

    在这个“seam需要的jar包”压缩包中,包含了运行和开发Seam应用程序所需的各种库文件。 首先,Seam框架的核心依赖于JSF,这是Java EE中的一个用户界面组件框架,用于构建交互式Web应用。JSF提供了模型-视图-控制器...

    seam in action 中文 english

    7. **国际化与本地化**:Seam支持多语言环境,对于中英文双语版本的书籍,这为开发者提供了跨越语言障碍的便利,帮助全球的开发者理解和使用Seam框架。 8. **测试支持**:Seam提供了一套完整的测试工具,包括单元...

    jboss seam 中文文档

    - **生命周期方法**:Seam 组件在其生命周期的不同阶段可以调用不同的方法,这些方法对于初始化、清理等工作非常重要。 #### 七、总结 通过上述章节的学习,读者不仅能够掌握 Seam 的基本使用方法,还能够深入了解...

    seam 2中文手册

    seam下一代web开发框架

    jboss seam中文资料

    - **组件模型**:Seam中的组件是构成应用的基本单元,它们封装了业务逻辑,并且可以通过声明式的方式进行配置。 - **会话管理**:Seam提供了强大的会话管理机制,支持不同类型的会话,如对话会话、持久化会话等。 - ...

    Seam - 语境相关的组件

    Seam中的组件系统基于CDI(Contexts and Dependency Injection),这是一个Java EE规范,负责管理对象的生命周期和依赖注入。CDI允许开发者声明依赖关系,而无需手动创建和管理对象。通过注解,你可以告诉Seam何时、...

    JSF项目中seam的配置

    接下来,我们来看看Seam中常见的注解: 1. **@Name**:用于标识Seam组件的名称,相当于JSF中的后台Bean,无需在`faces-config.xml`中单独配置ManagedBean。 2. **@Scope**:定义组件的作用域,如`Page`, `Event`, ...

    jboss seam 2.0 中文手册

    整理自jboss seam 中文站,压缩为chm格式,便于广大jboss seam爱好者阅读,所有版权归jboss seam中文站所有。

    《SeamInAction》+《JbossSeam》+《官方中文指南》

    RichFaces是Seam中的一个增强JSF功能的库,提供了丰富的AJAX支持;JBoss是Red Hat公司开发的应用服务器,它支持并推荐使用Seam框架。 在实际开发中,开发者可以通过这些资源学习如何使用Seam进行组件注入、依赖管理...

    JBoss Seam入门介绍

    在Seam中,一切皆组件,无论你是倾向于采用分层架构(如J2EE)还是简单的架构,都可以得到支持。组件可以是无状态或有状态的,有状态的组件可与多种预定义上下文关联,如业务流程上下文或方法上下文,这为Seam赋予了...

    seam2.0 中文文档

    - 解释了如何在Seam中实现推送式的服务模式。 ##### 1.11 在JBoss中用JSF1.2RI运行Seam的范例 - **环境搭建**: - 介绍了如何在JBoss AS和JSF1.2 RI环境中部署和运行Seam应用。 #### 二、使用Seam-gen起步 - **...

    jboss seam 学习资料,seam in action和官方手册

    6. **国际化与本地化**:学习如何在Seam项目中实现多语言支持。 7. **测试与调试**:掌握Seam的测试工具和策略,确保代码质量。 8. **Seam组件**:了解如Conversation、Transactions、邮件服务等Seam内置组件的使用...

    seam+hibernate注册例子

    Seam和Hibernate是两个在Java开发中非常重要的框架。Seam是一个全面的、集成的Java EE框架,主要用于简化企业级应用的开发,而Hibernate则是一个强大的对象关系映射(ORM)框架,它允许开发者用Java对象来操作数据库...

Global site tag (gtag.js) - Google Analytics