~
不是JAVA区冷清 而是用JSF的人少
没太看懂你的意思 为什么一定要传参数呢?你是想知道那个按钮是在现实里的哪一天被点击了?那你可以在action执行的方法里获得当前日期就行了啊?还是说你是做了个日历想知道人家点的是日历里的哪一天?

解决方案 »

  1.   

    方法一:通过post传过去。
    方法二:绑定到某个javaBean的某个属性上。
      

  2.   

    如果是迭代出来的那用
    <h:commandLink XXXXXXXXXXX>
      <f:param name="XXXXX" value="#{list.XXXXX}" />
    </h:commandLink>
    传就行啊
      

  3.   


    不是JAVA区冷清   而是用JSF的人少 
    没太看懂你的意思   为什么一定要传参数呢?你是想知道那个按钮是在现实里的哪一天被点击了?那你可以在action执行的方法里获得当前日期就行了啊?还是说你是做了个日历想知道人家点的是日历里的哪一天?对!我做了一个日历,想知道人家点了日历里面的哪一天!
      

  4.   

    而action方法里用
    HttpServletRequest request = (HttpServletRequest) FacesContext
    .getCurrentInstance().getExternalContext().getRequest();
    String XXXXX = request.getParameter("XXXXX");
    接就行了
      

  5.   

    5楼里的那个list指的是 你用t:dataTable或t:dataList或ui:repeat 中声明的var="list"
      

  6.   

    方法一:通过post传过去。
    <form>
    <input name="xxx" value="xxx"></form>
    While post the form.
    Then you can get the "xxx" by the way Win_angel give you.httpServletRequest   request   =   (HttpServletRequest)   FacesContext
    .getCurrentInstance().getExternalContext().getRequest();
    String   XXXXX   =   request.getParameter("XXXXX"); 方法二:绑定到某个javaBean的某个属性上。
    <form>
    <input name="xxx" value="#{user.date}"></form>"xxx" 是你定义的选择日期的那个元素。userBean可以用你现成的,也可以自己新建 一个。
      

  7.   

    可能小弟我没有说的太清楚吧日历显示在一个panelGrid中,日期的显示随着年和月的变化而变化,随意都是写的后台的。每个日期都可以点击,让客户进行那天的各种其他操作。红色部分的功能我不知道如何去实现~请大哥们指教~
      

  8.   

    我真晕了 不是说已经传过去了么?那你是怎么传的 你显示出的那个日历列表难道不是用t:dataTable或t:dataList或ui:repeat 迭代出来的么?var="list"
    <h:commandLink   XXXXXXXXXXX> 
        <f:param   name="XXXXX"   value="#{list.XXXXX}"   /> 
    </h:commandLink> 
    既然是迭代出来的那"#{list.XXXXX}" 肯定没次都不一样 这不用你管的 
    你只要在h:commandLink出发的action方法里用 
    HttpServletRequest   request   =   (HttpServletRequest)   FacesContext 
    .getCurrentInstance().getExternalContext().getRequest(); 
    String   XXXXX   =   request.getParameter("XXXXX"); 
    接就行了 
    或者通过actionListener也能得到 假设你list当中存数据的bean叫browseBean 
    public void morsListener(ActionEvent e) {
      UIData table = (UIData) e.getComponent().findComponent("你的t:dataTable的id");
      browseBean b = (browseBean ) table.getRowData();
      下面用b.get方法取你想要的对象就行了
    }
      

  9.   

    我是用JSF里面的panelGrid的~显示日历内容的操作是动态在后台完成的~
      

  10.   

    panelGrid是单行 你不会是一个月30天全页面写了N个panelGrid吧 我晕 你的日历不是封装在list里么?不是依靠JSF的迭代器迭代出来的么?自己一个一个的写???$&^%&^#%$@#%@.......
      

  11.   

    对啊,我的日历在dayList里面的!panelGrid可以多行显示的,设置他的columns属性就可以了~后台的代码我一开始就贴出来了~呵呵~
      

  12.   

    一般的思想是这样的 先通过已知的年月通过运用Calendar类的一些方法操作得到该月的日期集合 封装到list里这步通常是在你到达显示页面之前要做的事通常是写在list的get方法里 以便每次页面渲染时自动去取
    然后在页面上通过t:dataTable或t:dataList或ui:repeat 迭代出来 每一行都是一个bean 而我之前所说的h:commandLink也包含在迭代行里 所以迭代出来的日期后都会跟个h:commandLink 用f:param把你想要的值传过去就行 然后在h:commandLink触发的方法里接就行了 上面都写了 看下好了 当然你也可以采用actionListener 通过UIData获得你想要的数据 把所有的逻辑在actionListener进行处理 而action只做跳转动作
      

  13.   

    恩,我把panelGrid改成dataTable吧,谢谢大哥了~
      

  14.   

    情况假设你页面bean叫date他有个成员变量list叫dayList(也就是你的那个dayList) 还有一个要被触发的action方法叫do
    到达页面之前你的数据应该已经在dayList封装好了里面都是你的数据Bean 假设叫dateBean里面的日期属性叫day
    那页面代码如下:
    <h:form>
      <t:dataTable value="#{date.dayList}" var="list">
        <t:column>
         <f:facet name="header">
               <h:outputText value="日期"/>
         </f:facet>
         <h:commandLink action="#{date.do}">
    <h:outputText value="#{list.day}" />
    <f:param name="day" value="#{list.day}"/>
    </h:commandLink>
        </t:column>
      </t:dataTable> 
    </h:form>在date的do方法里用
    HttpServletRequest request = (HttpServletRequest)FacesContext
    .getCurrentInstance().getExternalContext().getRequest();   
    String day= request.getParameter("day"); 
    接就行了 还有就是如果不是用的facelets 而是普通JSF写法的JSP页面那前面要加上
    <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %> 如果用的facelets那要<html xmlns:t="http://myfaces.apache.org/tomahawk"> 当然还有配置t标签 感觉你用的应该不是facelets 那就按普通JSF的写法好了
      

  15.   

    上面出来的就是一竖排 要是日历可能就是周一是一列 周二是一列...... 那你dayList的dateBean里可能就要有7个属性分别代表周一至周日 如one、two、..... 
    one里封装的都是星期一 two里封装的都是星期二......
    那页面大概形如下面这样:
    <h:form> 
        <t:dataTable   value="#{date.dayList}"   var="list"> 
           <t:column> 
              <f:facet name="header"> 
                 <h:outputText   value="周一"/> 
              </f:facet> 
              <h:commandLink   action="#{date.do}"> 
                 <h:outputText   value="#{list.one}"   /> 
                 <f:param   name="day"   value="#{list.one}"/> 
              </h:commandLink> 
           </t:column> 
           <t:column> 
              <f:facet name="header"> 
                 <h:outputText   value="周二"/> 
              </f:facet> 
              <h:commandLink   action="#{date.do}"> 
                 <h:outputText   value="#{list.two}"   /> 
                 <f:param   name="day"   value="#{list.two}"/> 
              </h:commandLink> 
           </t:column>
           ......
           ......
        </t:dataTable>   
    </h:form>