seam和JSF环境搭建.docx
- 文档编号:11099277
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:87
- 大小:1.06MB
seam和JSF环境搭建.docx
《seam和JSF环境搭建.docx》由会员分享,可在线阅读,更多相关《seam和JSF环境搭建.docx(87页珍藏版)》请在冰点文库上搜索。
seam和JSF环境搭建
关于seam是什么,以及优缺点网络上有很多讲解,我这里是从学习及使用seam的角度说起。
1:
前期准备(只适用于windowsXP环境下)
2:
环境的配置
∙这里说的环境是指在windowsXP下,用eclipse开发seam的环境。
∙eclipse的seam插件配置,配置插件的最简单办法是直接把下载的内容拷贝到eclipse的目录下,但这样做的缺点是如果你所使用的插件比较多的话,不利于日后的插件维护,所以建议按照如下方法来安装eclipse的插件
o在C:
\eclipse下创建一个名叫links的文件夹(名字必须叫links)
o在C:
\eclipse下创建一个名叫otherPlugins的文件夹(名字可以任意)
o把上面的JBossTools-3.0.0.CR1-R200812191611-ALL-win32.zip文件,借压缩到JBossTools-3.0.0.CR1-R200812191611-ALL-win32文件夹下后,拷贝到otherPlugins下
o在C:
\eclipse\links下创建一个jbosstool.txt文件(名字可以任意)在这个jbosstool.txt文件里添加如下内容:
path=C:
/eclipse/otherPlugins/JBossTools-3.0.0.CR1-R200812191611-ALL-win32,即path后面记入的是jbosstool插件的路径。
o这里想强调的是JBossTools-3.0.0.CR1-R200812191611-ALL-win32文件夹下必须是eclipse文件夹才行,结构请参照下面的示意图。
C:
\eclipse
|
|—links
|
|-jbosstool.txt
|
|-otherPlugins
|
|-JBossTools-3.0.0.CR1-R200812191611-ALL-win32
|
|-eclipse
※“C:
\eclipse”是我的eclipse的主目录
∙设置好jbosstools插件后,运行eclipse就可以开始了。
END
JBossSeam从头学到脚之1---事前准备及配置
JBossSeam从头学到脚之2---创建工程
1:
创建一个seam工程,工程类型选择如下图
2:
点击“Next”按钮,进入下一步
3:
在“ProjectName”里输入,“helloworld”
设置“TargetRuntime”,点击“New”按钮
4:
点击“Next”按钮
5:
点击“Finish”按钮。
然后开始设置“TargetServer”,同样点击“New”按钮
6:
点击“Finish”按钮,结束设定。
最后“Configuration”中选择“DynamicWebProjectwithSeam2.1(technologypreview)”。
最终的画面如下图所示
7:
点击“Next”
8:
点击“Next”
9:
点击“Next”
10:
这里要配置“SeamRuntime”,点击“Add”按钮,并作如下选择
11:
设置好后,点击“Finish”按钮。
“Deployas”,我们选择“EAR”。
接下来设置数据库,这里我是用的是mySQL
首先,在“DatabaseType”里选择“MySQL5(InnoDB)”
然后,在“Connectionprofile”中,点击“New”按钮,来设置数据库的连接配置。
第一个画面如下选择:
12:
点击“Next”按钮
13:
点击新建的按钮后,出现下图,这里选择“5.1”。
14:
然后点击“JarList”,并正确选择mySQL的类库
15:
然后点击“OK”按钮
16:
把数据库名字,改成自己设置好的名字,这里我设置的是“studyseamdb”,如下图所示
17:
如果没问题,点击“TestConnection”按钮,我们会得到下面的成功画面
18:
没问题的话,点击“Finish”按钮,完成配置。
在下面的画面,继续点击“Finish”按钮来完成配置
19:
大致的界面如下图所示
20:
如果有java错误的话,把所有工程都重新编译一遍。
我这里最后还有一个错误没有清除掉,如下图
21:
启动jboss服务,如下图
22:
启动好后,如果一切正常,在浏览器地址栏中输入http:
//localhost:
8080/helloworld,可以得到以下画面
END
JBossSeam从头学到脚之3---支持多国语言(utf8)时遇到的问题及解决办法
Q1:
如果在home.xhtml里面输入了中文,或者日文,会发现页面将会出错?
A1:
解决办法,在eclipse里用文本方式打开文件,然后设置该文件的encoding为utf-8,这样就不会出错了。
Q2:
如何让提交的多国语言内容能够正常显示在页面上?
A2:
修改jboss的server.xml文件,我的jboss版本是5.0.0,启动的是default模式,
该文件就在jboss-5.0.0.GA\server\default\deploy\jbossweb.sar\server.xml,打开server.xml后,找到port="8080"的Connector部分,需要添加上URIEncoding="UTF-8"。
Q3:
mysql如何支持多国语言?
A3:
这里我是用的是图形工具,要把charset设置成utf8。
如果是用sql语句创建表,就要加上"CHARACTERSETutf8COLLATEutf8_general_ci"。
JBossSeam从头学到脚之4---如何支持国际化设置
“如何支持国际化设置”这个标题不知道合适不合适,姑且这么叫吧。
好多网站都提供了语言的选择,如google,觉得比较人性化,就在seam中寻找了一下相关课题,学习了一下。
具体实现方法如下(使用的工程是“JBossSeam从头学到脚之2---创建工程”中的helloworld工程):
1:
把messages_en.properties文件复制一下,把复制的副本改个名字叫messages_zh_CN.properties,这是为了实现中文,这个文件在helloworld/src下面。
2:
在messages_zh_CN.properties文件里面添加一个property,Name是ChangeLanguage,对应的value是“多国语言设置”;
3:
在messages_en.properties文件里面添加一个property,Name是ChangeLanguage,对应的value是“Change Language”;
4:
修改faces-config.xml文件,修改后的内容如下
Xml代码
1.
xml version="1.0" encoding="UTF-8"?
>
2.
3. 4. xmlns=" 5. xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance" 6. xsi: schemaLocation=" 7. version="1.2"> 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
xmlversion="1.0"encoding="UTF-8"?
>
xmlns=" xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation=" version="1.2">
5:
我把这个功能加到login.xhtml文件中,在这个文件的form里,追加如下内容:
Xhtml代码
1.……
2.……
3.xmlns:
f="
4.xmlns:
h="
5.……
6.……
7. loadBundle basename="messages" var="msgs"/> 8. selectOneMenu value="#{localeSelector.localeString}"> 9. selectItems value="#{localeSelector.supportedLocales}"/> 10. selectOneMenu> 11. commandButton action="#{localeSelector.select}" value="#{msgs['ChangeLanguage']}"/> 12.…… 13.…… …… …… xmlns: f=" xmlns: h=" …… …… loadBundlebasename="messages"var="msgs"/> selectOneMenuvalue="#{localeSelector.localeString}"> selectItemsvalue="#{localeSelector.supportedLocales}"/> selectOneMenu> commandButtonaction="#{localeSelector.select}"value="#{msgs['ChangeLanguage']}"/> …… …… ---updateon 2009/01/14 "#{msgs['ChangeLanguage' ]}"中的msgs是前面定义好的变量, 这里也可以不用事先定义, 而直接用默认的messages也可以,即"#{messages['ChangeLanguage']}"。 _ 6: 然后启动jbossserver,访问地址是http: //localhost: 8080/helloworld/login.seam,具体图示如下: END JBossSeam从头学到脚之5---eclipse中,registration例子的实现 文章分类: Java编程 学习的最好途径还是多看例子,从中吸取知识点。 registration是seam官方的例子,功能比较简单,但可以大致了解一下seam的工作原理。 该例子是在seam路径下的“~~~\examples\registration” 下面的步骤是让这个例子,是在我的开发环境(eclipse+jbosstools)中布置成功 (环境的详细说明可以看我前面的文章)。 具体步骤如下: 1: 在eclipse里,新建一个“SeamWebProject”,project名称是registration,数据库我用的是mysql,这里也要设置好,并通过测试。 2: 把view文件夹下的3个文件,拷贝到项目registration下的WebContent下,index.html可以覆盖掉已存在的。 3: 把src\org\jboss\seam\example\registration下的Register.java,RegisterAction.java拷贝到工程registration-ejb下的ejbModule的org.domain.registration.session包的下面。 然后把两个java文件的package修改成正确的“packageorg.domain.registration.session;” 这时候的错误先不用管,应为entitybean还没有拷贝过来。 4: 上面提及的工程registration-ejb只有一个包,为了有一个好习惯,我们还要自己创建一个org.domain.registration.entity的包,用来存放entity。 5: 把src\org\jboss\seam\example\registration下的User.java拷贝到刚刚创建好的org.domain.registration.entity包的下面。 然后把package修改成正确的“packageorg.domain.registration.entity;” 6: 把相关的java错误都修正。 比较简单,就不多啰嗦了。 另外,test的部分先不涉及,日后在慢慢学习。 7: ~~\examples\registration\resources下的文件可以不使用,因为eclipse自动生成中都包含了这部分内容。 8: 就是启动jbossserver来验证自己的成果。 你会发现数据库中的表会自动创建好。 Q&A: Q1: 文件RegisterAction.java中的“return"/registered.jspx";”为什么会好用呢? 为什么不是“return"/registered.xhtml";”呢? 哪位高人给解释下,谢谢! ! ! A1: 于2009-02-05自己的回答如下 根据昨天的反复“瞎试”,呵呵,得出以下结论 这里可以写任何名字的后缀,因为在web.xml中“url-pattern”定义的是“/*” 所以不管写什么后缀都可以,只要"/registered"正确即可。 欢迎大家指正! END JBossSeam从头学到脚之6---eclipse中,blog例子的实现 文章分类: Java编程 首先,创建一个名为blog的"SeamWebProject" 1: 在blog-ejb工程下的ejbModule下面,创建一个package,名字是org.domain.blog.entity 2: 把~~\examples\blog\src\domain\下的3个java文件,拷贝到entity下面。 3: 把seam路径的lib文件夹下的hibernate-search.jar包文件,拷贝到jboss路径下的common\lib文件夹下面。 4: 把~~\examples\blog\src\actions\下的8个java文件,拷贝到session下面。 5: 把seam路径的lib文件夹下的lucene-core.jar包文件,拷贝到jboss路径下的common\lib文件夹下面。 6: 修正好java的错误 7: 把~~\examples\blog\resources\WEB-INF\下的4个xml文件,拷贝到blog工程下的WEB-INF下面,同名文件覆盖的即可。 8: 把seam路径的lib文件夹下的boss-cache.jar,jgroups.jar拷贝到jboss路径下的common\lib文件夹下面。 9: 把view下的文件都拷贝到blog工程下的WebContent下面,拷贝前,把这下面文件夹外的文件都删掉,免得日后出莫名的问题,用到不该用到的文件。 10: 修正一个错误,具体如下 login.xhtml中的按钮没有action的设置,修改方法如下: 把 commandButtonvalue="Login"/> 改成 commandButtonvalue="Login"action="#{identity.login}"/> 11: 把~~\examples\blog\resources下的treecache.xml拷贝到blog工程下的WEB-INF下面。 12: 把~~\examples\blog\resources下的messages.properties拷贝到blog工程下的src下面,可以把这下面自动生成的文件删除。 13: 把~~\examples\blog\resources下的printable.properties、default.properties和accessible.properties,拷贝到blog工程下的src下面,可以把这下面原来自动生成的文件删除。 14: 把~~\examples\blog\resources下的components.properties,拷贝到blog工程下的src下面,可以把这下面原来自动生成的文件删除。 15: 把~~\examples\blog\resources\META-INF下的persistence.xml,拷贝到blog-ejb工程下的ejbModule的META-INF下面,覆盖掉自动生成的。 16: 数据库的数据,可以自己运行~~\examples\blog\resources下的import.sql中的sql语句,或直接拷贝到blog-ejb工程下的ejbModule下面,覆盖掉自动生成的。 我这里如果直接使用import.sql文件时,blogentry这个表的数据导不进去,老是说sql语句不对,所以我手工加的数据。 ※“~~”指seam路径。 END JBossSeam从头学到脚之7---eclipse中,blog例子的理解 文章分类: Java编程 把学习过程自己不理解的地方记录下来,供参考,指正, 1.初始页面index.xhtml是如何定义的? 因为在web.xml中没看到初始页面的定义,发现是定义在pages.xml中,定义的内容如下: 引申: pages.xml的作用? 参考URL: 2.Blog.java文件中,java.util.Locale是干什么的? java.util.Locale主要在软件的本地化时使用。 它本身没有什么功能,更多的是作为一个参数辅助其他方法完成输出的本地化。 参考URL: 3.Blog.java文件中,@Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)的含义? ? ? 解释说明: thegivencacheconcurrencystrategy(NONE,READ_ONLY,NONSTRICT_READ_WRITE,READ_WRITE,TRANSACTIONAL) 参考URL: http: //www.hibernate.org/hib_docs/annotations/reference/en/html_single/ 4.Blog.java文件中, @OneToOne(optional=false,mappedBy="blog") privateHitCounthitCount; 的含义? ⇒“OneToOne”意思是blog和hitcount是一对一的关系。 ⇒“optional=false”意思是与blog对应的hitcount不能为空。 ⇒“mappedBy="blog"”意思是blog和hitcount是双向关系。 另,OneToOne理解了的话,OneToMany的理解也就不难了。 参考URL: 5.treecache.xml的作用? 参考URL: http: //docs.jboss.org/seam/2.0.0.GA/reference/zh/html/cache.html http: //liwanchun-xd.javaeye.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- seam JSF 环境 搭建