可能有些内容其他人不知道我在说什么
组件中被作为事件处理的方法一定要在接口中声明其方法,再在XXXBean中实现其方法,不然会报错:找不到方法绑定。
如果使用默认的XHTML格式的页面,那页面导航可能要在pages.xml文件里面配置,不然会导致注入失败,绑定的值无法被传输,具体原因还在查明中
如果想用JSF默认的页面导航就使用JSP格式的文件并把默认的文件后缀改成jsp而不是xhtml
在QL语句中所涉及到的表名和字段名都要使用实体名和实体的getter方法的名字(field名),字段中出现字符串的字段要加上单引号
@Out注出的时候,对象不能够被设定为null,可以把相应的属性设置为空字符串
@In(create=true)如果在上下文中找不到要注入的实例,就自动创建一个,如果不设置自动创建,就可能要报错.一定要保证注入的值不能为空.或者可以指定@In(require=false)表示可以为空(NULL),但在组件的方法中千万不要拿它来进行操作,否则就会出错,因为它可以为空,所以一个没有被创建对象是不能用来操作的
注意,在对列进行命名的时候要注意千万不要和MYSQL的保留字段有冲突,无论大小写,比如MYSQL保留字段为READ,在给列命名的时候read也不可以。
貌似有操作才会有注出
用于页面导航的结果首字母最好不要大写,全部小写!如果是大字,则只会停留在原来的页面而不会导航到你所希望的页面.
Yes but you are finding the item and then removing it. As you aren't inside a transaction, once the item has been found, it will now be detached. When you delete it, the exception occurs. If you fix the transaction attributes it should work.
如果在有状态组件中要删除一个表中的实体,可能会出现上述情况,但如果把持久化上下文改为扩展的持久化上下文就不会有事了
不知道是一发现还是一什么,说说吧:
表中被选中的实体会注入,我再将它注出到上下文中,用几个edit框来绑定它的属性,只要对这个属性进行修改,再提交一下,修改过的资料就会自动更新到数据库了.
一般实体中的注释都是加在getter上的。
如果不指定主键自动生成,则在添加的时候会产生错误
在实体的操作中要注意请求生命周期的问题!
定义一个简单的安全规则
首先要在component.xml中把验证方法指定好.这个方法必须是要返回一个boolean值,以确定验证是否成功,在验证成功的分支里要用addRole()方法来添加一个被许可的成员,它的参数是一个字符串,比如说是'admin'
然后在XXX.page.xml中定义登陆页面的导航方向
Identity是Seam的一个内置组件,在登陆页面上直接使用它的属性来和输入控件绑定,在验证的时候再用Identity来提取用户名和密码.Identity的identity.loggedIn方法是判断用户是否登入了
在组件中添加@Restrict("#{s:hasRole('admin')}")注解,中的参数表明了有没有'admin'这个角色,有就可以调用被限制了的方法,没有就无法访问.
JSF页面的中文解决方式
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://jboss.com/products/seam/taglib"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:rich="http://richfaces.org/rich">
<head>
<title>SEAM</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
中文解决方式
</body>
</html>
在persistence.xml中hbm2ddl的value="validate"设成none可以不要它去验证mapping的正确性,如果表设计得不够好,验证就会出事.
首先数据源是提供给持久化单元引用的,在SEAM里面.
在一个持久化单元中指定两个数据源,可以这样
<persistence-unit name="GTHP">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/GTHPDatasource</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
<property name="hibernate.hbm2ddl.auto" value="none"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="jboss.entity.manager.factory.jndi.name" value="java:/GTHPEntityManagerFactory"/>
<property name="hibernate.default_catalog" value="gth_account"/>
<property name="hibernate.default_schema" value="dbo"/>
</properties>
</persistence-unit>
<persistence-unit name="GTHP2">
<jta-data-source>java:/MSSQL</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
<property name="hibernate.hbm2ddl.auto" value="none"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="jboss.entity.manager.factory.jndi.name" value="java:/GTHPEntityManagerFactory"/>
<property name="hibernate.default_catalog" value="gth_account"/>
<property name="hibernate.default_schema" value="dbo"/>
</properties>
</persistence-unit>
之后持久化管理器只要指定一个要引用哪个持久化单元的名字,就可以引用不同的数据源了.
Jboss中EJB使用时,同时调用两个数据源的时候出现问题
同时调用两个数据源程序会报错[com.arjuna.ats.internal.jta.transaction.arjunacore.lastResource.disallow] Adding multiple last resources is disallowed. Current resource is org.jboss.resource.connectionmanager.TxConnectionManager$LocalXAResource@d006a7
需要在jboss 配置文件jbossjta-properties.xml中增加<property name="com.arjuna.ats.jta.allowMultipleLastResources" value="true"/> 这个配置后应用正常
更改JBOSS访问路径
在使用ear进行发布 在ear中配置文件中 把 context-root的值设置一下
例如
<module>
<web>
<web-uri>aaa.war</web-uri>
<context-root>/</context-root>
</web>
</module>
用文件上传的组件时,对于文件的保存,是不可以直接使用item.getData()的.必须用输入流来读取文件成字节,再用输入流把它写成文件.
本文已重新编辑,因为是我初学的时候总结出来的,有很多不正确的地方,现在学了一段时间了有了更深的理解所以进行了更正
分享到:
相关推荐
### SEAM 中文开发指南知识点概述 #### 一、SEAM 框架简介 - **SEAM**:SEAM 是一个基于 Java EE 的企业级应用框架,它简化了复杂的应用程序开发过程,并且提供了丰富的功能来支持业务逻辑的实现。 - **版本信息**...
Seam的主要目标是减少开发中的样板代码,提高生产力,同时保持灵活性和可扩展性。 **二、Seam核心概念** 1. **组件(Components)**: Seam的核心是组件模型,它允许开发者定义和管理应用中的对象。组件可以是简单的...
Seam是一个全面的Java开发框架,专...总之,拥有《Seam In Action》、《JBoss Seam》和《官方中文指南》这些资源,开发者可以系统地学习和精通Seam框架,从而在企业级Java应用开发中游刃有余,提高开发效率和应用质量。
seam下一代web开发框架
Seam是一个强大的Java EE框架,它集成了多种技术,如JavaServer Faces (JSF)、Enterprise JavaBeans (EJB)、Java Persistence API (JPA)以及 Seam自身的组件模型,旨在简化企业级应用的开发过程,提高开发效率。...
Jboss Seam中文开发指南 Jboss Seam是基于Java EE 5.0的框架,提供了一个基于组件的架构,能够帮助开发者快速构建企业级应用程序。Seam框架提供了一个统一的编程模型,能够将JSF、EJB、JPA等技术整合在一起,提供了...
seam 中文文档 pdf 格式 JSF+EJB3.0快速开发框架Seam的中文版向导。。。
**JBoss Seam 中文文档集合概述** JBoss Seam 是一个开源的应用框架,它结合了JavaServer Faces (JSF)、Java Persistence API (JPA)、Enterprise JavaBeans (EJB) 3.0 和其他Java EE组件,旨在简化企业级开发。这个...
在Eclipse中配置和运行Seam项目时,可能会遇到一些常见错误。本文将针对这些问题提供解决方案。 首先,我们讨论的是EditPlus软件中的问题。EditPlus是一款轻量级且功能强大的文本编辑器,深受程序员喜爱。当保存...
jBoss Seam有一个活跃的社区,提供各种教程、示例和论坛讨论,帮助开发者解决遇到的问题。不断学习和实践,掌握Seam的高级特性,如CDI、Faces Flow等,能够进一步提升开发效率。 总的来说,NetBeans与jBoss Seam的...
6. **故障排查**:掌握常见的错误日志分析技巧,以便于定位和解决问题。 7. **性能优化**:了解如何调整服务器配置,提高应用性能,如内存设置、线程池管理等。 **二、深入浅出JBoss+Seam** Seam是一个全面的Java...
Seam框架是一个全面的Java企业级应用开发框架,它整合了JSF(JavaServer Faces)、EJB、CDI(Contexts and Dependency Injection)以及许多其他Java EE技术,为开发者提供了强大的组件模型和丰富的功能,旨在简化...
Seam、EJB和JSF是Java开发中的三个重要框架,它们在企业级应用程序开发中发挥着关键作用。本文将详细讲解如何在Eclipse环境中创建并理解一个Seam工程的实例,结合EJB(Enterprise JavaBeans)和JSF(JavaServer ...
**JBoss Seam 学习资源概述** ...通过阅读这些材料,开发者可以全面了解和掌握JBoss Seam框架,提升其在企业级Java应用开发中的技能。不论是初学者还是经验丰富的开发者,都能从中获益,进一步提升自己的技术水平。
### JBoss Seam 教程知识点概述 #### 一、Seam简介与教程概览 - **Seam**:一个基于Java EE平台的应用框架,旨在简化企业级应用开发。 - **JBoss Seam**:由JBoss提供的Seam实现,提供了一系列功能强大的工具和...
Seam 是一个强大的Java EE框架,它主要用于简化JavaServer Faces (JSF)应用程序的开发,同时提供了对EJB 3、CDI(Contexts and Dependency Injection)、Ajax等技术的集成。在JSF项目中配置Seam,可以充分利用其优势...
在过去的两周里,我深入学习了SeamTest,这是一个用于Java EE应用测试的强大...在实际使用过程中,遇到的问题和错误是学习过程的一部分,通过解决这些问题,我们可以更深入地理解SeamTest和Seam框架的内部工作原理。