没有调用JSF动作监听器

时间:2012-06-02 15:38:26

标签: java jsf java-ee richfaces

我正在使用JSF 1.2RichFaces 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有效内容的链接

1 个答案:

答案 0 :(得分:2)

您应该在f:form周围尝试a4j:forma4j:commandButton