我将用户名和密码绑定到支持托管bean.在支持bean中,当我用DB检查用户名和密码时,我想将页面重定向login.xhtml到home.xhtml.我怎样才能做到这一点?
对应用程序通用的操作使用commonBean是否正确/最佳实践?在我的例子中,这将是一个注销函数,它清除会话bean的记录值.
我的一个同事告诉我,只有一个控制器bean应当按次使用,但它似乎是一个浪费,在多个豆复制了同样的方法.
我想实现用户输入URL的情况,如果我的托管bean中指定的条件为真,则此URL将在新的网页中打开.
我发现了这种可能性:
"h:link"标签对于生成需要与
JSF"结果" 进行交互的链接很有用,但缺乏"动作"支持使得难以生成动态结果."h:commandLink"标签很糟糕,生成
JavaScript的确非常可怕!除非您有充分的理由支持,否则不建议使用此标记.但它支持"动作"属性,这就是"h:link"所缺乏的."h:outputLink"对于生成不需要与
JSF程序本身交互的链接很有用.最后,如果将"action"属性添加到"h:link"中,它将是完美的.
但在条件验证后,我找不到从托管bean启动打开网页的方法.
我正在使用JSF2.0,Facelets和PrimeFaces 3.4.
我有一个一行的数据表,我需要编辑这一行的字段,所以我有一些带有值的 inputText,但是当我编辑它们并单击命令按钮(调用方法“actualizarUsuario”时,这些值作为空值。
这是我的豆代码:
@ManagedBean(name = "user")
@ViewScoped
public class userDetalles implements Serializable {
private Usuario u;
private usuarioController controlador;
Rol rol;
private long selection;
private long selectionrol;
Agrupacion agrupacion;
private Privilegio privilegio;
private RolController controladorRol;
private ControladorAgrupaciones controladorAgrup;
private String nombres;
private String apellidoP;
private String apellidoM;
private Boolean check;
@PostConstruct
public void init() {
rol= new Rol() ;
u=new Usuario();
agrupacion=new Agrupacion();
privilegio=new Privilegio();
controlador= new usuarioController();
controladorRol=new RolController();
controladorAgrup=new ControladorAgrupaciones();
Usuario u=new Usuario();
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext …Run Code Online (Sandbox Code Playgroud) 我正在使用JSF来创建一个Web应用程序.
我有一个应用程序作用域bean,它具有无限循环,以便它定期执行一个动作.
我的问题是这个bean(由于无限循环)阻塞整个应用程序.我以为bean会在自己的线程上运行.不是JSF的情况,默认情况下每个托管bean都在自己的线程上运行?
我应该创建一个线程,让无限循环在该线程中运行吗?
谢谢
这是我在XPage中的ToolTip性能的上一篇文章的后续内容我已经编写了代码(未经过测试),所以我似乎无法让我的Managed Bean被正确调用.我的配置包含以下内容:
<managed-bean id="ToolTip">
<managed-bean-name>WFSToolTip</managed-bean-name>
<managed-bean-class>ca.workflo.wfsToolTip.ToolTipText</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
Run Code Online (Sandbox Code Playgroud)
我已经将我的代码剥离到最低限度:
package ca.workflo.wfsToolTip;
public class ToolTipText {
public String getToolTipText(String key){
return key;
}
}
Run Code Online (Sandbox Code Playgroud)
我的班级在构建路径中.我有一个简单的XPage,其中有一个提交,并为该字段的工具提示.工具提示的代码是:
<xe:tooltip id="tooltip1" for="inputText1">
<xe:this.label>
<![CDATA[#{javascript:WFSToolTip.getToolTipText("More Stuff");}]]>
</xe:this.label>
</xe:tooltip>
Run Code Online (Sandbox Code Playgroud)
当我在浏览器中加载测试XPage时,我得到一个错误:
执行JavaScript计算表达式时出错脚本解释器错误,line = 1,col = 12:在java类'ca.workflo.wfsToolTip.ToolTipText'上调用方法'getToolTipText(string)'时出错
JavaScript代码
1:WFSToolTip.getToolTipText("更多东西");
我无法弄清楚为什么调用getToolTipText会失败.
任何人都可以看到我出错的地方.这是我的第一个Managed Bean,目前它正在管理我而不是相反.
谢谢.
我正在将托管bean注入另一个托管bean的托管属性.
package com.books.beans;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
@ManagedBean(name="book")
@RequestScoped
public class Book {
@ManagedProperty(value = "page")
private Page pages;
// Getter/setter
}
Run Code Online (Sandbox Code Playgroud)
package com.books.beans;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean(name="page")
@RequestScoped
public class Page {
// ...
}
Run Code Online (Sandbox Code Playgroud)
但是,它抛出以下EL异常:
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/JSFTraining] threw exception [Unable to set property pages for managed bean book] with root cause
javax.el.ELException: Cannot convert page of type class java.lang.String to class com.books.beans.Page
at org.apache.el.lang.ELSupport.coerceToType(ELSupport.java:416)
at org.apache.el.ExpressionFactoryImpl.coerceToType(ExpressionFactoryImpl.java:46) …Run Code Online (Sandbox Code Playgroud) JSF2中是否可以从自定义组件(在方法encodeBegin中)访问FacesContext和托管bean?
谢谢.
我的应用程序在这里遇到了一些问题.我想检查字段密码和确认密码是否匹配在一起,所以我尝试在这个问题的第一个答案中这样做:使用Hibernate Validator进行交叉字段验证(JSR 303)
问题是它实际上不起作用,我没有想法为什么.请帮我!这是我在这里的第一篇文章,所以请不要对我太苛刻.
这是我的注释:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package pl.lodz.p.zsk.ssbd2012.ssbd12.ValidationConstraints;
import java.lang.annotation.*;
import javax.validation.Constraint;
import javax.validation.Payload;
/**
*
* @author lukasz
*/
@Documented
@Constraint(validatedBy = FieldMatchValidator.class)
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface FieldMatch {
String message() default "{pl.lodz.p.zsk.ssbd2012.ssbd12.ValidationConstraints.FieldMatch}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
String first();
String second();
}
Run Code Online (Sandbox Code Playgroud)
这是我的ValidatorClass:
/*
* To change this template, choose Tools | Templates
* …Run Code Online (Sandbox Code Playgroud) validation hibernate-validator bean-validation jsf-2 managed-bean
我试图从ManagedBeanUtil类获取我的SessionScoped managedBean的对象,但所有iam获取为null.
这是我的代码: -
package com.beas.ui.manager;
@ManagedBean(name = "sessionManager")
@SessionScoped
public class SessionManager implements Serializable {
private static final long serialVersionUID = -3064514740080155761L;
//..
}
public class ManagedBeanUtil {
public static SessionManager getSessionManager() {
return (SessionManager) FacesContext.getCurrentInstance()
.getExternalContext().getSessionMap().get("sessionManager"); // returns null
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道我做错了什么.谁能为此提供合适的解决方案?
我正在使用Netbeans 8.0.2.我使用File - > New Project - > Java Web:Web Application创建了一个非常简单的(什么是JSF)Web应用程序.
我试图在我的index.xhtml页面中打印一个@Named bean的实例变量,但它没有按预期工作.我正在使用Netbeans中的绿色"运行项目"按钮部署应用程序,该按钮自动打包,部署和启动浏览器.
在web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>MyContext</param-name>
<param-value>null</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
Run Code Online (Sandbox Code Playgroud)
的index.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:head>
<title>Facelets Hello Greeting</title>
</h:head>
<h:body>
<!-- I am expecting the beans name …Run Code Online (Sandbox Code Playgroud) 我正在使用PrimeFaces 5.0,并希望<p:treeTable>在单击事件后在弹出框中创建内容,但显示以下错误
无法创建托管bean
popupTreeTableManagedBean。结果发现以下问题: -托管bean类beans.PopupTreeTableManagedBean的托管beanpopupTreeTableManagedBean不声明一个公共的无参数的构造函数。-管理bean类beans.PopupTreeTableManagedBean的托管beanpopupTreeTableManagedBean不声明一个公共的无参数的构造函数。
这是我的代码片段
index.xhtml:
<p:dialog header="" widgetVar="dlg1" minHeight="200">
<p:treeTable value="#{popupTreeTableManagedBean.root}" var="node" style="" >
<p:column>
<f:facet name="header">Name</f:facet>
<h:outputText value="#{node.name}"></h:outputText>
</p:column>
<p:column>
<f:facet name="header">Value</f:facet>
<h:inputText value="#{node.value}" style="border-style: hidden;"/>
</p:column>
</p:treeTable>
</p:dialog>
Run Code Online (Sandbox Code Playgroud)
PopupTreeTableManagedBean.java
@ManagedBean
@SessionScoped
public class PopupTreeTableManagedBean {
private TreeNode root = new DefaultTreeNode("Root Node", null);
List<String> selectedParams;
TreeNode scanParamsRoot = null;
PopupTreeTableManagedBean() {
selectedParams = GenrateScanList.getParamList();
createRootAndLeafNodes();
}
private TreeNode createRootAndLeafNodes() {
TreeNode scanSubRoot = null;
int …Run Code Online (Sandbox Code Playgroud) managed-bean ×12
jsf ×8
jsf-2 ×3
java ×2
cdi ×1
constructor ×1
el ×1
new-window ×1
primefaces ×1
redirect ×1
validation ×1
xpages ×1