在xbean中调用另外的bean(RegionBean)时需要如下配置;注意regionbean是managed bean的source文件里的名称,即jsp文件使用时的名称。
web.xml 中增加如下声明
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/web.xml</param-value>
</context-param>
xbean中获取RegionBean中的属性mregion
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
FacesContext context = FacesContext.getCurrentInstance();
ValueBinding binding = context.getApplication().createValueBinding("#{regionbean.mregion}");
private MRegion modiregion = (MRegion) binding.getValue(context);
自定义异常(如,设置requered=true,但未输入东西就提交)提示文件mmessage.properties
在faces-config.xml文件中添加
<application>
<locale-config>
<default-locale>zh_CN</default-locale>
<supported-locale>zh_CN</supported-locale>
</locale-config>
<message-bundle>mmessage</message-bundle>
</application>
messages_zh_CN.properties
javax.faces.component.UIInput.REQUIRED=/uff08/u4e0d/u80fd/u 7a 7a/u 7f 3a/uff09
在JDK安装目录中BIN底下有一个转码工具native2ascii.exe 资源文件需要进行Unicode编码,方法是使用这个jdk提供的工具来转换native2ascii unicode到ascii的方式: native2ascii -reverse 原档名转换档名 ascii到unicode方式:
native2ascii -encoding GB2312 test.xml
native2ascii -encoding GB2312 -reverse test.xml test.txt
控制页面上组件的显示:把组件的rendered属性与后台一个boolean对应上,然后控制这个boolean就可以了。
页面上组件的style类型设置,如:style="font: 12px Tahoma,宋体; color: #0000ff";注意用颜色名称指定color不被一些浏览器接受;关于颜色列表可以从http://doc.51windows.net/的CSS2中文手册中查看。
比如修改操作;在对名字的验证中不能调用下边上级区域的更改信息,因为在验证时,所选择的新上级的信息bean还没有处理。
session的访问方法:
HttpServletRequest hrequest = (HttpServletRequest)request;
String userName =(String) hrequest.getSession().getAttribute("USER_NAME");
String userRegion = (String)hrequest.getSession().getAttribute("USER_REGION");
int level = (Integer)hrequest.getSession().getAttribute("USER_LEVEL");
分页显示功能:首先安装组件tomahawk- 1.1.6
JSP页面设计如下:
页头定义
<%@taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
表显示
<t:dataTable id="data"
var="car"
value="#{pagedSort.cars}"
rows="10">
……
</t:dataTable>
分页显示
<t:dataScroller id="scroll_1"
for="data"
fastStep="10"
paginator="true"
paginatorMaxPages="9">
<f:facet name="first" >
<t:graphicImage url="images/arrow-first.gif" border="1" />
</f:facet>
<f:facet name="last">
<t:graphicImage url="images/arrow-last.gif" border="1" />
</f:facet>
<f:facet name="previous">
<t:graphicImage url="images/arrow-previous.gif" border="1" />
</f:facet>
<f:facet name="next">
<t:graphicImage url="images/arrow-next.gif" border="1" />
</f:facet>
<f:facet name="fastforward">
<t:graphicImage url="images/arrow-ff.gif" border="1" />
</f:facet>
<f:facet name="fastrewind">
<t:graphicImage url="images/arrow-fr.gif" border="1" />
</f:facet>
</t:dataScroller>
Myfaces tree2的使用
http://www.myftp.com.cn/Article/develop/JSP/200610/13406.html
http://blog.csdn.net/taoyinzhou/archive/2005/12/21/557870.aspx
jsf开发如何利用js的dtree
1-如果jsp页面有jsf代码,那么在tree的节点url处要用*.faces
2-页面中把节点信息赋值给
String nodeSelected = request.getParameter("nodeId");
if((nodeSelected!=null)&&(!nodeSelected.equals("")))
{
request.getSession().setAttribute("NODESELECTED",nodeSelected);
}
3-在bean中获取session的代码:
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request;
request = (HttpServletRequest) fc.getExternalContext().getRequest();
String regionid = (String) request.getSession().getAttribute("NODESELECTED");
4-页面布局可以用table的tr+td来控制。
5-多个form的显示,可以利用rerender属性(绑定bean中一个属性)来控制显示
<script language="JavaScript" type="text/JavaScript">
document.getElementById("form1:mhostName").focus();
</script>
自动定位焦点
session.invalidate(); //session失效
关于B/S系统重新编译巨慢和class文件拷贝不全问题的解决方法
1、Project Properties->Build 选项卡中去掉Check JSPs for errors at build-time
2、右键选择GS8.2WEB,选择Properties->Content选项卡,选择Include all classes and resourcs(第一项),确定,然后再选择第二项,确定。重新编译,没有问题
提醒大家注意的一点:在应用JSF标签的jsp页面,应用<a4j:support>标签实现多个组件联动时,rerender非常重要,但是rerender的对象如果是panelGrid,看不到联动的效果,必须得用panelGroup把panelGrid包装起来,以panelGroup作为render的对象才有联动的效果