1

我正在使用JSF 1.2and RichFaces 3.3.3,我有一个非常奇怪的问题,代码所做的是获取要搜索的媒体项的名称并将其放入支持 bean 属性 searcTitle 中,当用户单击搜索按钮时,onSearch动作侦听器会填充结果列表。

这是代码

<rich:panelBar>
   <rich:panelBarItem>
       <rich:tabPanel>
           <rich:tab label="Media">
              <h:panelGrid columns="1">
                 <h:panelGrid columns="2">
                   <h:inputText value="#{media.searchTitle}"/>
                   <a4j:commandButton value="Search" actionListener="#{media.onSearch}"/>
                 </h:panelGrid>
                 <a4j:outputPanel id="mediaSearchResults" ajaxRendered="true">
                    <rich:dataTable value="#{media.results}" var="item">
                       <h:column>
                          <h:outputText value="#{item.title}"/>
                       </h:column>
                    </rich:dataTable>
                 </a4j:outputPanel>
              </h:panelGrid>
           </rich:tab>
       </rich:tabPanel>
   </rich:panelBarItem>
</rich:panelBar>

和支持 bean 代码

private String searchTitle="";
private List<MediaItem> results;

public void setSearchTitle(String title){
    getLogger().log(Level.INFO,"At the setter of the search title string"); 
    this.searchTitle = title;
}

public String getSearchTitle(){
    return searchTitle;
}
//Setter and getter for the results list;

//Action Listener
public void onSearch(ActionEvent evt){
   getLogger().log(Level.INFO,"At the actionListener"); 
   //Some function that searches and populates the results list
   populateResults();
}

现在的问题是,每当我单击搜索按钮时,都不会调用动作侦听器,尽管在检查带有火错误的页面时,每次单击它都会向服务器发送请求,但不会触发动作侦听器本身。

有谁知道我为什么会遇到这个问题?我是这方面的初学者,所以请保持你的语言简单。

提前致谢。

这是来自 firebug 的 Reposne/Request 标头

响应标头

Ajax-Response   true
Cache-Control   no-cache, must-revalidate, max_age=0, no-store
Content-Type    text/xml;charset=UTF-8
Date    Sat, 02 Jun 2012 16:03:13 GMT
Expires 0
Pragma  no-cache
Server  Sun GlassFish Enterprise Server v2.1.1
Transfer-Encoding   chunked
X-Powered-By    Servlet/2.5, JSF/1.2

请求标头

Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en,ar;q=0.7,en-us;q=0.3
Connection  keep-alive
Content-Length  17986
Content-Type    application/x-www-form-urlencoded; charset=UTF-8
Cookie  JSESSIONID=de975352b3adc4f59d57006755ea; JSESSIONID=de682f835c0fa928413ba7e5f59d; form:tree-hi=form:tree:applications:enterpriseApplications
Host    localhost:8080
User-Agent  Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0

以及响应http://justpaste.it/10uh的 xml 有效负载的链接

4

1 回答 1

2

您应该尝试使用f:forma4j:form围绕您的a4j:commandButton.

于 2012-06-02T15:54:57.737 回答