Blog

2 search results for:

1

Primefaces UI使用小结

/ in Boke / by Hima
相较于Struts、SpringMVC等MVC框架,在国内的企业应用中JSF的使用确很少,或许是因为资料很少又或许是我们对它的认知不够,但有一点不可否认,JSF是被纳入Java EE 5规范的,而其它的却没有。 之前使用JSF做过几个项目,但这是第一次使用Primefaces UI(它是基于JSF Mojarra实现的一套很强大的UI,有社区版和商业版),因为在使用过程中碰到很多“坎”,所以想写篇博客将碰到的问题总结下,也希望能帮助到想使用或正在使用Primefaces UI的人。 Primefaces UI在百度上基本搜不到有价值的信息,在整个解决问题的过程中Google(记着要切换到英文去搜哦)帮了很大的忙,它在国内用的人就更少了。但回过头去看,我真的很愿意向大家推荐这款UI,超级赞!我目前使用的版本是Primefaces 3.5和JSF Mojarra-2.1.17,废话少说进入正题。 一、ManagedBean的Scoped 1、RequestScoped 2、ViewScoped 3、SessionScoped 4、ApplicationScoped Request、Session、Application大家都比较熟悉,就不多说了,ViewScoped顾名思义视图有效,或者说当前页有效,因为Servlet规范里并没有View这个概念,所以它是JSF延伸出的一个概念,个人理解是为Ajax准备的,大家一定要记住它哦,后续它可发挥了很大的作用。 二、Primefaces 1、template的使用 在现在Web开发中,特别是Ajax出现后,framesetframeiframe已经不是特别推荐使用了(当然也可以使用),牛人可以用DIV构建出任何想要的布局,像我们这些平民懂的分享牛人的成果就OK了,在Primefaces里我们可以用p:layout布局,并做成template,后面的每个页面只要继承这个template,就可以直接享用,如下图 2、ViewScoped的使用 这个很重要,在项目开始时,因为SessionScoped的生命周期太长了不想用,所以大部分的ManagedBean都是用的RequestScoped,问题是一个接一个,如p:commandButton和p:commandLink的action和actionListener莫名其妙的不可进入,Ajax的使用也有时可以有时不可以,Scoped换成Session就一切都OK了,发现跟Bean的生命周期有关系,最后调试完,发现用ViewScoped最合适,生命周期比Request长比Session短,同时又能解决上述问题,因为Primefaces UI里大量用到ajax通信,这种场景最适合用ViewScoped。 3、form的使用 在使用中一定要避免form嵌套form的情况,它会出现很多不可以预知的情况,如提交附件会出现问题,但并列form可以放心的使用 4、tree的使用 如上图的Left中可以放置一个树形菜单,使用过的人可能会和我碰到一样的问题,那就是当我打开一个新页面时,树形菜单不能保持我打开页面之前的状态,解决方法:负责树形菜单Node节点的Bean的Scoped要申明成SessionScoped,并在tree标签上加属性dynamic="true",如 5、confirmDialog的使用 如果在使用confirmDialog时发现,弹出框被遮罩层给挡住了不可使用,怎么办?解决方法:在confirmDialog标签加属性appendToBody="true",如 6、dialog的使用…
2

涉及HTML标记语言的翻译注意事项

/ in Boke / by Hima
对于翻译,我真是一个门外汉,头一回写关于开发语言和翻译间的那点事,个人才疏学浅,也只能点点皮毛,还望读者不要见笑,当然也希望能够给予读者一些帮助。 今天打算谈谈HTML标记语言的一些特性,及他们在被翻译时的一些注意事项。 一、翻译一个由HTML开发的软件或应用 这其实就是对一个软件进行翻译,将其展示部分翻译成不同的语言版本,顾名思义只要将展示部分进行翻译就可以,系统控制或者后台非展示部分是不需要翻译的。 因为HTML是一个标记语言,所以用它开发的应用,就是一个“开源”应用,拿到这个应用的人,就拿到了其原始代码,所以它的翻译就在原代码上进行翻译,在这里一个小小的错误就有可能造成翻译后的应用不可用,所以一定要掌握翻译和不翻译间的界限,下面我们分开介绍: 1)标签 标签是HTML最基础的组成部分,不同的标签对应不同显示效果,但是标签是语言组成的一部分,所以它不需要且不能被翻译,那么如何识别哪些是标签呢,有两种方法:1、死记硬背HTML所有的标签;2、根据标签开闭规则来识别。一个专业的人都很难记住全部的标签,更何况是一个非专业的人呢,所以我推荐第二种方式,标签的开闭规则有两种,<tag />或者<tag><tag/>,如<input />, <input></input>。 2)属性 属性是标签的组成部分,大部分是不需要被翻译的,如<input name="hima" />,这里的name就是属性,它的值hima是不需要被翻译的。 需要翻译的属性汇总(知识有限,或许有遗漏): content:它的内容是要给别人看或发现的,所以要被翻译,如<meta name="description" content="CCJK is a professional company that provides language translation, localization, DTP, technical writing,…

Need Translation Service?

Please enter your personal details and we will contact you shortly.