JSF开发笔记

 
JSP是构建动态网站、大型web应用程序展现层技术的最佳选择。
JSP技术是Servlet技术的扩展;Servlet是含有HTML代码的java程序,而JSP是含有java代码的HTML程序。
JSP和微软的ASP技术非常相似,主要区别是JSP用Bean封装对象,而ASP用COM封装对象;此外JSP是平台无关的,而ASP只能运行于Windows平台。
JSP通常使用一系列的特殊标签在网页中引入java代码或java片断,如下重要标签
<% 代码 %>:Scriptlet标签
<%! 声明 %>:变量和方法的声明
<%-- 注释 --%>
<%= 表达式 %>
<%@page 属性 %>
<%@taglib uri=”标签路径” prefix=”前缀符” %>
JSP在创建时自动建立的9个重要隐含对象,在Scriptlet或表达式标签等地方可以直接使用
Request、response、pageContent、session、out、application、config、page、exception

 

xbean中调用另外的beanRegionBean)时需要如下配置;注意regionbeanmanaged beansource文件里的名称,即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 unicodeascii的方式: native2ascii -reverse 原档名转换档名 asciiunicode方式:

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开发如何利用jsdtree

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-页面布局可以用tabletr+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,看不到联动的效果,必须得用panelGrouppanelGrid包装起来,以panelGroup作为render的对象才有联动的效果

 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值