jsf 2.0(2)

2019-08-30 20:45

18. */ 19. public EchoEncoder getEncoder() { 20. return encoder; 21. } 22. 23. /** 24. * @return the echoText 25. */ 26. public String getEchoText() { 27. return echoText; 28. } 29. 30. public String getOutText() { 31. return encoder.Encode(echoText); 32. } 33. 34. /** 35. * @param echoText the echoText to set 36. */ 37. public void setEchoText(String echoText) { 38. this.echoText = echoText; 39. } 40. 41. public void echo() { 42. } 43. } EchoEncoder.java: Java代码

1. package test; 2. 3. public class EchoEncoder implements java.io.Serializable{ 4. 5. private static final long serialVersionUID = 8306351263183979293L; 6. private String author = \; 7. 8. /** 9. * @return the author 10. */ 11. public String getAuthor() { 12. return author; 13. } 14. 15. public String Encode(String msg) { 16. return msg.replaceAll(\, \).replaceAll(\, \).replaceAll(\\\n\, \); 17. } 18. } 先看第一个文件echo.xhtml,其中action=\,此处没有如JSF1.2中写一个表达式,这是新加入的一种导航方式,可以直接写文 件的除后缀以外的名称,JSF2引擎会自动找到对应的文件,然后导航。另外看看escape=\属性,这个是为了直接将内容中的标签以 html方式显示,你可以调整本例中escape以及后台返回的outText的方法,看看前面的显示,这是非常有趣的。

好了,这个例子可以运行了,在页面中输入http://localhost:8080/TestJsf2.0/echo.xhtml就可以访问了。

二、 将输入值组件化:

现在真正将上述例子用自定义的复合组件改写一下,整个过程会非常简单,后台的bean都不用改写,只用改变页面就行。

我们看看自定义的组件echoInputText.xhtml,此页面需要放在WebRoot下的resources/echo/文件夹下。

echoInputText.xhtml: Html代码

1. 2. 3. 7. 8. 9. 10. 11. 12. 13. 14. 15. 请输入响应文字: 16. 17. 18. 19.

此文件将echo.xhtml中的 Xml代码

1. 2. 请输入响应文字: 3. 4. 提取出来,做成一个echoInputText组件,然后修改echo.xhtml为以下样子:

echo.xhtml: Html代码

1. 2. 7. 8. 测试简单的复合组件 9. 10. 11. 12. 13. 14. 15. 这个应声器的作者是:#{echo.encoder.author}。 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 响应: 28. 29. 30. 31. 这两个文件修改后就可以运行了。

我们来分析一下自定义的echoInputText组件,先看看echo.xhtml文件有什么变化。看看xml命名空间中

加入了 xmlns:echo=\,这个就是用来引用自定义的组件的,其中 http://java.sun.com/jsf/composite/会默认指向到resources文件夹,后面直接跟资源的目录。 resources文件夹是JSF2.0的一个默认资源放置文件夹,后面的echo就是指resources/echo/文件夹了。整个命名空间的意思就 是将此文件夹命名为echo。再看看echo.xhtml文件中一处变化:

此段告诉我们直接采用了echo命名空间下的echoInputText组件,其中有一个属性为echo,指向的就是managed bean:echo。

再看看echoInputText组件: Html代码

1. 2. 3. 这一段用来定义此组件接口,并且定义一个属性,属性名为echo。 Xml代码 1. 2. 3. 请输入响应文字: 4. 5. 6. 这一段用来实现组件,其实中间的内容就是原先echo.xhtml文件中的输入组件,cc.attrs是JSF2.0组件定义中默认属性,可以用来引用接口中定义的属性。

最后,我们已经完成了一个简单的自定义符合组件,其中还用到了一下新的特性,大家可以多多查看JSF2.0的接口定义,去更多的了解。

在下一篇中我们来一起看看JSF2.0组件中另外一个激动人心的改进,页面模版化。


jsf 2.0(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:监狱文化建设的实践与思考

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: