`
songxh2
  • 浏览: 132793 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Donuts-spring2+hibernate3+jsf开发日志(1)

阅读更多

 1)web环境下,spring,jsf环境配置问题:
     1-1)1web.xml里配置spring的web.context.ContextLoaderListener;
     1-2)faces-config.xml里配置org.springframework.web.jsf.DelegatingVariableResolver链接jsf和spring的beans访问环境的代理程序,spring.xml
     1-3)managed-bean  managed-property 的值好像不能指定为接口class??!
     1-4)自动生成bean然后移动目录导致,userdaohibernate里的finderbyid里的实体bean class 字符串错误。
     1-5)No state saving method defined, assuming default server state saving ,打开face的client存储选项。在  web里添加:???未下定论,可能是加sessionid在url后面??!!
   <context-param>
         <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
         <param-value>client</param-value>
  </context-param>
     1-6)jsf表单按钮提交时,如果数据有校验,校验不通过时,command里的action的方法不会执行。页面不会按照正常配置跳转。这时最好捕获消息。
     1-7)使用tanhawk组件的Callendar需要配置web.xml 的:如果是虚拟目录前必须加/donuts/
 <filter-mapping>
     <filter-name>MyFacesExtensionsFilter</filter-name>
     <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
 </filter-mapping>
    1-8)测试jsf页面时,改jsf表单标签时,需要重新打开窗口测试。。不然原来客户端页面内容状态仍然存在。
    1-9)最好的paged sorted datamodel  org.apache.myfaces.trinidad.model.CollectionModel(数据模型) Tag标签()
  <tr:table>
  <tr:column>
      <f:facet name="header">
        <tr:outputText value="Firstname"/>
      </f:facet>
      ...
    </tr:column>
    <tr:column headerText="Lastname">
      ...
    </tr:column>
  </tr:table>

    1-10)不能去掉web.xml 不然找不到spring bean<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    1-11)hibernate对象关联多对多双向关联时,set或bag的inverse="true"只能单方面设置,双方都设置inverse="true"则关联表数据写不进去。
       
    1-12)facelet环境调用spring-bean:
  FacesContext ctx=FacesContext.getCurrentInstance();
  StudentDAO studao=(StudentDAO)ctx.getApplication().getVariableResolver().resolveVariable(ctx,"StudentDAO");
  studao.addTeacher();
    1-13)servlet环境调用spring-bean:
            ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(application);
  GroupDAO gdao=(GroupDAO)ctx.getBean("GroupDAO");
  gdao.addRole();
    1-14)hibernate关系映射中,要想及时取到many-to-one的数据,必须设置属性:outer-join="true"
    1-15)hibernate-jsf-数据库数据字典终于成型了,采用many-to-one模型结构。
  label显示:#{Test.child.parent.id}
  修改提供选择<h:selectOneMenu id="parent" value="#{Test.child.parent.id}" required="true">
    1-16)hbm-dll工具使用时,总是drop原来数据库,然后创建新的数据库,并且在数据库里也创建关联。
  但数据库关联导致hibernate删除相关数据(如字典数据)出错,所以可能需要手工清除数据库关联。
  如果保留数据库关联,那么要删除关联数据必须先修改与这些字典的关联数据。才能删除。这样有利于保证数据库完整性。

    1-17)<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  <c:url value='/styles/xerllent.css'/>能解决虚拟目录路径问题。

    1-18)使用immediate属性可以略过验证,如下:
   <h:commandButton action="cancel" value="Cancel" immediate="true" />
  当immediate为ture的时候,   validation 和 update model phases被跳过了,JSF生命周期直接到
  Invoke Application 阶段. 注意:  在这种情况下上面的"action"是必须的:如果没有该属性
  (or null is returned from action method) 则验证将会发生.

    1-19)  10、在JSF中应用JS 在JSF中应用javascript在提交前做一些客户端的验证或修改DOM动作时,有两种常用方法
 1、在form中添加onsubmit属性
 <h:form onsubmit="return JS()">
 ……
 </h:form>
 2、在commandButton中添加onclick属性
 <h:commandButton  onclick="return JS()"/>
 注意:JS在验证失败(即不希望提交时)必须return false,否则都会提交。

分享到:
评论
5 楼 newstong 2007-10-31  
楼主可否把你的qq,msn号留下,我有这方面的问题请教你可以吗,谢谢
4 楼 songxh2 2007-10-30  

引用
ltian     2007-07-31 08:47
1-12)facelet环境调用spring-bean:
FacesContext ctx=FacesContext.getCurrentInstance();
StudentDAO studao=(StudentDAO)ctx.getApplication().getVariableResolver().resolveVariable(ctx,"StudentDAO");
studao.addTeacher();

谢谢指点,但我有很多东西都需要依赖spring的,比如acegi安全组件,你所提到的是一个测试案例,在具体开发中没有大量用到这种方式。


引用
coolfish     2007-10-07 11:25
myfaces1.2 和 tomcat6 搭配起来有点问题吧,楼主有没有遇到过,According to TLD or attribute directive in tag file, attribute value does not .

回答:是有些问题,sun的api和myfaces扩展api的包要放一块。。还有有问题的。
3 楼 coolfish 2007-10-07  
myfaces1.2 和 tomcat6 搭配起来有点问题吧,楼主有没有遇到过,According to TLD or attribute directive in tag file, attribute value does not .
2 楼 songxh2 2007-07-28  
jsf思想非常先进,正在不断成熟中,大势所趋,势不可挡阿。当然最好还是用最适合自己的技术。
我也在摸索中,开始看理念,挺先进的:

一、原来hibernate最大的功劳就是把数据库操作与应用服务器端java对象实现了持久化了,从而让逻辑程序员不需要懂每种数据库的方言了;

二、而jsf所做的工作呢,就是将服务器端java bean和web view实现了一种新的持久化,从而让程序员不用每次都将web页面的request对象都用getparemeter()解析一遍再放入bean里。


三、而这种持久化比起struts来说更加宽泛了,不简单是view和继承actionfrom对象的关系,所以实现起来要复杂的多。

但是,我个人认为:
1.jsf在实现上还是有多细节问题,这么个伟大的思想,恐怕用现有的web容器和IE相关技术能完全支撑的.在周边技术不断成熟后,会越来越完善的.

2.jsf1.1和1.2我觉得还是可以达到实用程度的.有问题吗也是可以避免的,如果第三方jsf实现还满足不了你的要求,我就建议自己去实现api.

3.jsf将服务器端的用户javabean状态持久化到客户端(可以在服务器端),其中涉及到很多算法和编码技术,所以就目前来看代码没有自己写html代码量那么少,效率高,其实这些问题都不是问题,你知道10年前的代码执行效率都比现在高嘛.

4.jsf1.2的sun官方实现版本和apache公司刚刚公布的myfaces1.2核心api目前是有重叠的.myfaces1.2是sun公司jsf1.2标准更成熟的实现,但由于公布的jee5捆绑了sun公司的1.2标准的api,所以用实用faces1.2时带来了麻烦,他们的开发包不好分开.目前我只是混用.

先写这么多吧..
有错误请指出..谢谢!


1 楼 djg_victory 2007-07-28  
你觉得JSF用起来爽不?
我觉得这个东西不怎么样,还是struts和ww好!

相关推荐

    donuts-no-1

    【标题】"donuts-no-1" 暗示我们可能正在处理一个与JavaScript相关的项目,可能是某种软件、应用或工具的源代码,这个项目的代号或者版本名为"donuts-no-1"。在编程领域,这样的命名通常代表开发者对项目的一种独特...

    dunkin-donuts-ct:东北邓肯甜甜圈分析

    【标题】"dunkin-donuts-ct:东北邓肯甜甜圈分析"涉及的是对东北地区邓肯甜甜圈(Dunkin' Donuts)业务的深入数据分析,可能包括销售趋势、客户偏好、市场占有率等多个方面。这个项目可能是为了帮助决策者理解该品牌...

    donuts-JavaScript

    一个简单的实现卖蛋糕的页面,适合JavaScript的初学者用于练习-A simple implementation sell cake page for JavaScript beginners for practice

    The Incredible Flying Half Donuts-开源

    【开源软件】是一种重要的软件开发模式,它鼓励代码的公开分享和协作改进。"The Incredible Flying Half Donuts" 是一个采用这种模式的赛车游戏项目,它的名称充满了创意和趣味性,暗示了游戏中的独特元素——飞驰的...

    The Space Donuts 3D for MFC.

    标题 "The Space Donuts 3D for MFC" 提供的信息表明,这是一款与三维空间中的甜甜圈图形相关的软件开发项目,它利用了Microsoft Foundation Classes (MFC) 框架。MFC 是微软为 Windows 平台开发的 C++ 类库,用于...

    Dunkin Donuts Robber-crx插件

    【Dunkin Donuts Robber-crx插件】是一款针对英语用户设计的浏览器扩展程序,其主要功能可能与游戏或娱乐相关。从描述中的“语言: English”我们可以推断,这款插件是为英语环境的浏览器用户提供的。描述中提到的...

    Direct3D游戏开发技术详解游戏开发实例

    Direct3D是微软开发的一种图形应用程序接口(API),主要用于创建高性能的3D图形,尤其在游戏开发领域广泛应用。本教程“Direct3D游戏开发技术详解游戏开发实例”着重于通过实际项目来教授Direct3D的核心技术和游戏...

    time-to-make-the-donuts

    标题 "time-to-make-the-donuts" 可能是指一个编程项目或挑战,可能是通过Python语言来实现。这个项目的名称可能借鉴了美国经典电视广告语“Time to make the donuts”,意味着是时候开始制作(或执行)某个过程了。...

    Shadero Sprite - 2D Shader Editor 1.9.3

    - Add Node: Generate &gt; Shape &gt; Donuts - Add Node: Generate &gt; Shape &gt; Lines - Add Node: Generate &gt; Shape &gt; Noise - Add Node: RGBA &gt; Color &gt; Turn Metal - Add Node: RGBA &gt; Color &gt; Turn Gold - Add Node: ...

    coffee-and-donuts:一个简单的网络应用程序,可帮助您在前往目的地的途中收集咖啡和甜甜圈

    JavaScript,作为Web开发中的主要语言,不仅适用于浏览器端,还可以通过Node.js在服务器端运行,这使得开发者能够构建全栈式应用。 在"coffee-and-donuts"项目中,用户首先通过搜索功能输入他们的目的地,应用将...

    react-svg-donuts:用于React的SVG甜甜圈组件

    如果需要旧版React支持,请使用1.xx版本。 演示版 TL; DR 依存关系 节点JS NPM /纱线 React和ReactDOM 一个ReactJS应用程序 用法 首先安装软件包 $ npm i react-svg-donuts # or $ yarn add react-svg-donuts ...

    蜂蜜甜甜圈前端公共

    要求对于开发,您只需要在环境中安装Node.js和节点全局程序包Yarn。纱线安装在安装节点之后,该项目也将需要yarn,因此只需运行以下命令。 $ npm install -g yarn安装$ git clone ...

    Donuts Wallpaper & Donuts Theme HD-crx插件

    使用方法:-这个Doughnut Donuts Shop Wallpaper扩展程序非常简单,只需单击Add to chrome-它会自动添加。 -在左上角,单击设置以根据需要自定义所有选项。 -在浏览时享受最好的壁纸和免费的小部件功能:-本地时间...

    donuts游戏开源

    DIRECTX SDK 8 中的面包圈游戏的开源

    css3-donuts:使用 CSS3 动画的动画圆环图

    css3-甜甜圈 使用 CSS3 动画的动画圆环图 演示: :

    Visual C++游戏开发技术与实例.part3.rar

    书中主要涵盖了游戏架构设计、2D游戏开发、网络游戏开发、3D游戏开发、游戏设计和图形图像常用算法等方面的内容。 书中涉及的主要实例包括冒险屠宰场游戏、入侵者游戏、赛车游戏、网络五子棋游戏、网络台球游戏、...

    Visual C++游戏开发技术与实例.part2.rar

    书中主要涵盖了游戏架构设计、2D游戏开发、网络游戏开发、3D游戏开发、游戏设计和图形图像常用算法等方面的内容。 书中涉及的主要实例包括冒险屠宰场游戏、入侵者游戏、赛车游戏、网络五子棋游戏、网络台球游戏、...

    Visual C++游戏开发技术与实例(附光盘)

    书中主要涵盖了游戏架构设计、2D游戏开发、网络游戏开发、3D游戏开发、游戏设计和图形图像常用算法等方面的内容。 书中涉及的主要实例包括冒险屠宰场游戏、入侵者游戏、赛车游戏、网络五子棋游戏、网络台球游戏、...

    Direct3D游戏开发技术详解 配套源代码

    Direct3D是微软开发的一个图形应用程序接口(API),主要用于创建高性能的2D和3D图形,尤其是在游戏开发领域。这个“Direct3D游戏开发技术详解 配套源代码”资源包含的是与Direct3D游戏开发相关的示例代码,可以帮助...

Global site tag (gtag.js) - Google Analytics