相关疑难解决方法(0)

h:commandButton/h:commandLink在第一次单击时不起作用,仅在第二次单击时起作用

我们有一个更新动态包含的ajax导航菜单.包含文件各有各自的表单.

<h:form>
    <h:commandButton value="Add" action="#{navigator.setUrl('AddUser')}">
        <f:ajax render=":propertiesArea" />
    </h:commandButton>
</h:form>
<h:panelGroup id="propertiesArea" layout="block">
    <ui:include src="#{navigator.selectedLevel.url}" />
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)

它工作正常,但包含文件中的任何命令按钮在第一次单击时都不起作用.它仅适用于第二次点击.

我发现这个问题commandButton/commandLink/ajax动作/监听器方法没有被调用或输入值没有更新,我的问题在第9点描述.我明白我需要明确地包含在解决它的包<h:form>中的ID <f:ajax render>.

<f:ajax render=":propertiesArea :propertiesArea:someFormId" />
Run Code Online (Sandbox Code Playgroud)

但是,在我的情况下,表单ID事先是未知的.此表格最初也不会在上下文中提供.

上述方案有什么解决方案吗?

jsf commandlink jsf-2 commandbutton

22
推荐指数
2
解决办法
3万
查看次数

JSF过滤器在初始重定向后不重定向

我正在尝试设置webfilter并需要一些帮助.我的过滤器在初始登录时运行正常,但是当会话超时,并且我点击任何链接时,它会触发我的重定向语句,但浏览器中的网页永远不会被重定向.有人可以帮忙解决这个问题吗?非常感激.

过滤

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package src;

import java.io.IOException;
import javax.faces.application.NavigationHandler;
import javax.faces.context.FacesContext;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 * @author Bernard
 */
@WebFilter(filterName = "LoginFilter", urlPatterns = {"/*"})
public class LoginFilter implements Filter {

    //FilterConfig fc;

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        //fc = filterConfig; …
Run Code Online (Sandbox Code Playgroud)

authentication jsf redirect servlet-filters

8
推荐指数
1
解决办法
6561
查看次数

如何从ValueChangeEvent重新加载JSF页面?

我有一个selectonemenu,其中选择的更改应该导航用户到相关页面.

那么,如何使用selectonemenu控件模拟命令按钮的动作处理(或者有更优雅的方法来实现这一点)?

jsf

6
推荐指数
1
解决办法
3万
查看次数

SelectItem标签中的JSF链接

是否有可能设置一个<a href />在我<f:selectItem itemLabel="label" />在我的链接文字是itemLabel?

我正在使用普通的太阳组件.

jsf hyperlink selectonemenu

3
推荐指数
1
解决办法
2526
查看次数

如何在动作方法中将请求转发到非JSF页面?

我想从JSF操作方法转发请求到非JSF页面.我在JSF操作中使用下面的代码:

public String submitUserResponse() {
    // ...

    parseResponse("foo.jsp", request, response);

    // ...

    return "nextpage";
}  

private String parseResponse(String uri, HttpServletRequest request, HttpServletResponse response) {
    if (uri != null) { 
        RequestDispatcher dispatcher = request.getRequestDispatcher(uri);
        dispatcher.forward(request, response);
        return null;
    }

    // ...

    return "xxxx";
}
Run Code Online (Sandbox Code Playgroud)

在submitUserResponse()当用户点击来自JSF页面的提交按钮被称为动作方法,并且此方法返回nextpage的字符串.这里请求转发到正常流程中的下一个JSF页面.但在我的要求中,我需要将请求转发到下一个非JSF页面.它正在运行,但它在服务器中显示以下异常.

java.lang.IllegalStateException:在提交响应后无法转发

我观察到转发请求后使用的代码行parseResponse(...)和return "nextpage";仍在执行dispatched.forward(uri).同样的事情发生了response.sendRedirect(url).这是怎么造成的,我该如何解决?

navigation jsf forward

2
推荐指数
1
解决办法
4万
查看次数