2 phoenix zd phoenix_zd 于 2015.06.11 09:49 提问

【JSF/PrimeFaces】查询条件与查询结果两个panel隐藏与展示的问题

【环境】
JSF2.2+PrimeFaces5
【需求】
查询功能实现:

  1. 用户进入查询界面,输入查询条件(大概有十几个,占了半个页面)
  2. 点击“查询”按钮后,进入查询结果页面
  3. 查询结果页面有一个“新查询”的按钮,点击可以清空之前的查询条件,回到查询页面

【实现】
我用了一个页面来展示查询条件和查询结果,点击查询按钮时,隐藏查询条件panel,显示查询结果panel;点击“新查询”按钮时,隐藏查询结果panel,显示查询条件panel

【代码】
xhtml:

        <p:panel id="searchFormPanel" binding="#{basicSearchUi.searchFormPanel}">
        <h:form id="searchForm" method="post">
          <p:commandButton value="查询" actionListener="#{basicSearchUi.doBasicSearch}" update=":#{p:component('resultForm')} :#p:component('searchFormPanel')}"></p:commandButton>
        </p:form>
...

        <p:panel id="resultFormPanel" binding="#{basicSearchUi.resultFormPanel}">
        <h:form id="resultForm" method="post">
          <p:commandButton value="新查询" action="#basicSearchUi.newSearch()}"></p:commandButton>
        </h:form>  

java(backingbean):

    Panel searchFormPanel;
    Panel resultFormPanel;
    public void doBasicSearch()
    {
        ...
        searchFormPanel.setVisible(false);
        resultFormPanel.setVisible(true);
        ...
    }

    public void newSearch()
    {
        if(searchResult!=null)
            searchResult.clear();

        searchCriteria = new BasicSearchVO();       

        searchFormPanel.setVisible(true);
        searchFormPanel.setRendered(true);

        resultFormPanel.setVisible(false);
    }    

【问题】
当点击“查询”时,查询条件panel能正确的隐藏,查询结果panel显示查询到的记录;但是,当点击“新查询”时,查询结果panel隐藏了,而查询条件panel却无法显现! 直接查看在chrome里查看html,发现查询条件panel根本就没有生成任何html代码。

【疑惑1】
visible=false的含义跟rendered=false的含义应该是不同的,前者应该生成html而后者不生成
【疑惑2】
我是jsf新手,请问这样处理查询条件、查询结果的姿势对吗(一个页面搞定)?还是说需要拆分成两个页面?因为查询结果有分页,而我需要一次查出所有记录,方便分页展示和排序,一个页面貌似更方便!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Primefaces+JSF中页面组件update刷新问题,求大神解惑!
最近使用primefaces+jsf进行开发时遇到一个诡异的问题,一个页面的代码运行无误,然后将此页面的代码复制添加到另一个页面中运行,后台代码不变。程序浏览器都不会报错,但页面显示有问题,不能正常刷新,经尝试后将update属性中的form的id前面加上“:”后可以正常运行。如修改为后即可正常运行。故记录下来,以后遇到类似问题可以先这样尝试。如有大神知道这两种写法有什么区别,麻烦在评论区帮忙解答
primefaces 伸缩可合可并 panel,datatable的footer下分页
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui"> Product
primeFaces标签无法正常显示
primeFaces标签要位于JSF“标签域”中,即在<h:body>...</h:body>中。
JSF-PrimeFaces实现图片的上传、下载、删除、预览
一、前言 培训班出来,第一份工作是没有学过的jsf框架,开贴记录学习过程,和大家分享。其实自己也是一知半解,边实现边学习。下面使用的组件都是PrimeFaces的。 二、图片上传组件、逻辑 <p:commandButton ajax="false" icon="fa fa-download" onclick="Pr
JSF(PrimeFaces)由后台向前台传递参数
框架:JSF(PrimeFaces) 前台传递参数到后台:  将数据放到表单中,提交表单,后台Controller即可获得前台页面中参数的值; 后台传递参数到前台:  即后台Controller向前台页面传递参数,可用如下代码实现: Controller: import org.primefaces.context.RequestContext;...... RequestContex
JSF复习系列(3)--JSF、Primefaces标签与Html的内嵌使用
一、前言为了让自己的前端好看一点,怎样将经常使用JSF标签与炫酷的HTML、CSS结合起来呢?同样,这也是暑假里需要解决的问题。 比较不幸的是,网上相关资料一点完整的都没有,整理一下。 今天好像就干了这一件事,中间遇到了些坎坷,还好解决了。二、前期准备 JSF、Primefaces的命名空间 web.xml中JSF映射 相关HTML标签换成JSF、Primefaces标签 三、详细
PrimeFaces4.0关于calendar显示简体中文
第一步:创建js文件,名为zh_ch.js;;内容如下: PrimeFaces.locales['zh_CN'] = {     closeText: '关闭',     prevText: '上个月',     nextText: '下个月',     currentText: '今天',     monthNames: ['一月','二月','三月','四月','五月','六月','七月
如何用JSF技术上传文件(PrimeFaces)
如何用JSF技术上传文件(PrimeFaces)
JSF+primefaces开发总结
用来执行分页 id:不多解释 paginator:不清楚 paginatorPosition:不清楚 rows:显示多少行 lazy:不清楚 value:集合数据 var:代理名称 cuurentPageReportTemplate:页数 rowsPerPageTemplate:每页显示数量 rowIndexVar:行号 rowkey:不为空的属性 selection:多选
JSF + Primefaces表单验证
正则表达式匹配为空或者正整数:    ^([0-9]{1}|[1-9]{1}[0-9]{0,}|)$ 如果是表单做了值绑定,最好是绑定的字符串类型,否则可能被转化器将空字符串以null返回。 <p:dialog header="广告修改" widgetVar="updateDlg" resizable="true" height="400" width="600" show