使用JSF @ManagedProperty(...)时出错?

时间:2014-12-09 15:20:47

标签: jsf jsf-2 managed-property

我在使用@ManagedProperty时遇到问题。一旦我将它分配给一个属性我就得到下面的错误。显然,该参数被理解为null,但这不是通缉的情况。为什么@ManagedProperty(value = "#{param.menu}")会返回null

我输入的行:

.../spectrum/index.jsf?lang=en&menu=impressum

我的代码:

@ManagedProperty(value = "#{param.menu}")
private String menu;

public String getMenu() {
    return menu;
}

public void setMenu(String menu) {
    this.menu = menu;
}

我得到的错误:

Error processing request
Context Path:
/spectrum

Servlet Path:
/index.jsf

Path Info:
null

Query String:
lang=en&menu=impressum

Stack Trace
javax.servlet.ServletException: Verwalteter Bean topMenuBean kann nicht erstellt werden. Die folgenden Probleme wurden gefunden: - Der Bereich des Objekts, auf das Ausdruck #{param.menu}, request, ist kürzer als der verweisende Bereich session des verweisenden Beans topMenuBean.
javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61)
io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113)
io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56)
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45)
io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61)
io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)
io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240)
io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73)
io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146)
io.undertow.server.Connectors.executeRootHandler(Connectors.java:177)
io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:727)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)

编辑:

错误位于@SessionScoped中。它必须是@RequestScoped才能使它工作! 谢谢@Tiny!非常感谢! :)

1 个答案:

答案 0 :(得分:0)

错误位于@SessionScoped中。它必须是@RequestScoped才能使它工作!谢谢@Tiny!非常感谢! :)