你的后台代码有问题不是JSF的问题

解决方案 »

  1.   

    回:zqpsswh(似水无痕) 兄弟     后台怎么会有问题呢?..我是按标准做的托管bean. 如果有问题,应该是那有问题呢???
    回:livan1038(李枫) 兄弟
         我在"#{wh.saveWarehouseInfo}"这个方法中的第一行设置了断点. 点击提交时如果结果是刷新页面的话它根本不激活断点. 从而我无法进行跟踪调试. 如果断点激活了,这次提交的数据肯定能添加进去.
      

  2.   

    打开你的错误显示:<h:messages style="display:none;" id="errorinfo"/>,去掉display:none;看看报什么错误,还有一种排查错误方法,就是你先删除有怀疑的一个组件,然后再试另一个,如果按你所说的情况,多半是数据转换时发生的错误,这种错误就是不报错误,且不能提交页面,请重点检查你的<h:selectOneMenu id="whType" value="#{wh.whType}"><f:selectItem itemLabel="总仓" itemValue='Y'/><f:selectItem itemLabel="分仓" itemValue='N'/></h:selectOneMenu>部分
      

  3.   

    回:mxm_1123(无名)兄弟   我将:<h:messages style="display:none;" id="errorinfo"/>,去掉display:none了,并不会提示什么错误. 另我将<h:selectOneMenu id="whType" value="#{wh.whType}"><f:selectItem itemLabel="总仓" itemValue='Y'/><f:selectItem itemLabel="分仓" itemValue='N'/></h:selectOneMenu>部分删除了. 效果依旧.. 按Jsf的生命周期  恢复视图->应用请求值->处理验证->更新模型值->调用应用程序->Render显示 程序应该是应用请求值后就直接跳到Render显示了.. 按理说,如果是新请求才会直接跳转的呀,这是为什么呢?..
      

  4.   

    我做了一个PhaseLisener
    发现在我提交不成功的时候出现以下信息(Tomcat5.028控制台输出的)..请求开始
    RESTORE_VIEW 1
    RESTORE_VIEW 1
    RENDER_RESPONSE 6
    RENDER_RESPONSE 6
    操作完成!这就说明,当提交时,完全把它当作了一个新请求("没有回传")看待. 直接跳到输出了.
      

  5.   

    提交成功时显示请求开始
    RESTORE_VIEW 1
    RESTORE_VIEW 1
    APPLY_REQUEST_VALUES 2
    APPLY_REQUEST_VALUES 2
    PROCESS_VALIDATIONS 3
    PROCESS_VALIDATIONS 3
    UPDATE_MODEL_VALUES 4
    UPDATE_MODEL_VALUES 4
    INVOKE_APPLICATION 5
    INVOKE_APPLICATION 5
    RENDER_RESPONSE 6
    RENDER_RESPONSE 6
    操作完成!回:mxm_1123(无名) 没成功时提交直接从RESTORE_VIEW跳到RENDER_RESPONSE了. 应该是数据验证转换都没有执行吧?
      

  6.   

    在组件上加上required="true"不就知道它执行了没有吗?
      

  7.   

    回mxm_1123(无名)兄弟:      加上了,效果和以前没什么区别. 我不输内容,它会出现必须输入内容的错误提示. 我输入内容后结果依然是刷新页面.
     
    提交不成功时,控制台还是输出:请求开始
    /basic/add_wh.jsf RESTORE_VIEW 1
    /basic/add_wh.jsf RESTORE_VIEW 1
    /basic/add_wh.jsf RENDER_RESPONSE 6
    /basic/add_wh.jsf RENDER_RESPONSE 6
    操作完成!
      

  8.   

    你用的是sun jsf1.1吧,这个版本就有个bug说的是commandbutton不提交,建议你下载sun jsf1.2或者是改用myfaces,myfaces是不用出现这种问题的。
      

  9.   

    回mxm_1123(无名) 兄弟:呵呵,我终于发现问题所在了.我只要不点击<管理部门>与<负责人>这两个输入框,系统就可以正常的添加数据.
    原因:<管理部门>点击时,会弹出新窗口,新窗口中显示的select_dept.jsf文件. 当弹出select_dept.jsf时,就会产生select_dept的UIViewRoot. ,问题就在这里,select_dept.jsf中的UIViewRoot居然会将原来父窗口中add_wh.jsf的UIViewRoot替换掉.这样就会出现add_wh.jsf提交时,找不到原来的UIViewRoot.从而认为是新的请求.所以页面就刷新了.
    但是如何解决这个问题,我目前还没想到.我现在确实用的是SUN JSF1.1