有人可以向我解释为什么我的例子中的Foo在到达validateDoubleRange类时总是为空?最终结果是验证器的最小值始终为0.在outputText元素中,数字3在页面上显示正常.如果我做豆@SessionScoped而不是它,它验证很好@ViewScoped
控制器:
import java.io.Serializable;
import java.math.BigDecimal;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ViewScoped
@ManagedBean(name = "fooController")
public class FooController implements Serializable {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(FooController.class);
private static final long serialVersionUID = 1L;
private Foo foo;
private BigDecimal amount;
private Long fooId;
public Long getFooId() {
return fooId;
}
public void setFooId(Long fooId) {
this.fooId = fooId;
this.foo = new Foo();
foo.setFooId(fooId);
foo.setMinAmount(Double.valueOf(3));
foo.setMaxAmount(Double.valueOf(10));
}
public Foo getFoo() {
return foo;
}
public void sendAmount() { …Run Code Online (Sandbox Code Playgroud) 我有一个@ConversationScoped bean,带有一个start方法,如下所示:
@PostConstruct
public void start() {
if (conversation.isTransient()) {
conversation.begin();
log.debug("conversation.getId(): " + conversation.getId());
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,每次刷新页面时都会启动一个新会话,每次我对bean中的方法进行AJAX调用时,也会启动一个新的会话(这是我的主要问题).
我真正想要发生的是让sam对话流连,直到我手动调用conversation.end().我在这里错过了什么?
我已经成功设置了JBoss安全域,并且可以使用BASIC身份验证进行身份验证(如web.xml中所定义).这一切都运作良好.但我无法弄清楚如何使用http request.login方法.
以下安全域(来自jboss-web.xml)适用于BASIC身份验证:
<jboss-web>
<context-root>/myapp</context-root>
<security-domain>java:/jaas/myapp-realm</security-domain>
</jboss-web>
Run Code Online (Sandbox Code Playgroud)
但是当我使用request.login时如下:
public void login() {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
try {
request.login(username, password);
}
catch (ServletException ex) {
java.util.logging.Logger.getLogger(UserLogin.class.getName()).log(Level.SEVERE, null, ex);
}
}
Run Code Online (Sandbox Code Playgroud)
我得到以下异常:
javax.servlet.ServletException: Failed to authenticate a principal
Run Code Online (Sandbox Code Playgroud)
我知道用户名/密码很好(使用BASIC auth工作正常).我有TRACE级别登录,看起来甚至没有尝试进行身份验证.我错过了什么?
如果您需要有关我的setup/config的更多详细信息,请参阅http://java-web-development.blogspot.com/2011/07/jee-6-security-part-two-implementation.html.我正在使用JBoss 6.