标签: managed-bean

登录后如何重定向?

我将用户名和密码绑定到支持托管bean.在支持bean中,当我用DB检查用户名和密码时,我想将页面重定向login.xhtmlhome.xhtml.我怎样才能做到这一点?

jsf redirect managed-bean

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

JSF注销页面 - 最佳实践:使用一个常见的bean是否正确?

对应用程序通用的操作使用commonBean是否正确/最佳实践?在我的例子中,这将是一个注销函数,它清除会话bean的记录值.

我的一个同事告诉我,只有一个控制器bean应当按次使用,但它似乎是一个浪费,在多个豆复制了同样的方法.

java jsf managed-bean

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

如果托管bean中的条件为true,则打开一个新窗口

我想实现用户输入URL的情况,如果我的托管bean中指定的条件为真,则此URL将在新的网页中打开.

我发现了这种可能性:

"h:link"标签对于生成需要与JSF"结果" 进行交互的链接很有用,但缺乏"动作"支持使得难以生成动态结果.

"h:commandLink"标签很糟糕,生成JavaScript的确非常可怕!除非您有充分的理由支持,否则不建议使用此标记.但它支持"动作"属性,这就是"h:link"所缺乏的.

"h:outputLink"对于生成不需要与JSF程序本身交互的链接很有用.最后,如果将"action"属性添加到"h:link"中,它将是完美的.

但在条件验证后,我找不到从托管bean启动打开网页的方法.

我正在使用JSF2.0,Facelets和PrimeFaces 3.4.

jsf new-window primefaces managed-bean

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

从支持 bean 中的 inputtext 获取值(jsf 2)

我有一个一行的数据表,我需要编辑这一行的字段,所以我有一些带有值的 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-2 managed-bean

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

应用程序作用域bean是否在JSF中的单独线程上运行?

我正在使用JSF来创建一个Web应用程序.

我有一个应用程序作用域bean,它具有无限循环,以便它定期执行一个动作.

我的问题是这个bean(由于无限循环)阻塞整个应用程序.我以为bean会在自己的线程上运行.不是JSF的情况,默认情况下每个托管bean都在自己的线程上运行?

我应该创建一个线程,让无限循环在该线程中运行吗?

谢谢

jsf managed-bean

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

创建ToolTip托管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,目前它正在管理我而不是相反.

谢谢.

managed-bean xpages

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

@ManagedProperty抛出javax.el.E​​LException:无法将类java.lang.String类型的bean转换为类com.example.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)

jsf el managed-bean managed-property

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

自定义组件和对辅助bean的访问

JSF2中是否可以从自定义组件(在方法encodeBegin中)访问FacesContext和托管bean?

谢谢.

java custom-component jsf-2 managed-bean

0
推荐指数
1
解决办法
654
查看次数

跨域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

0
推荐指数
1
解决办法
3420
查看次数

在ExternalContext中访问@SessionScoped @ManagedBean类#getSessionMap()返回null

我试图从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)

我不知道我做错了什么.谁能为此提供合适的解决方案?

jsf session-scope managed-bean

0
推荐指数
1
解决办法
658
查看次数

在JSF页面中找不到@Named bean

我正在使用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)

jsf cdi managed-bean

0
推荐指数
1
解决办法
3883
查看次数

ManagedBean不声明公共无参数构造函数

我正在使用PrimeFaces 5.0,并希望<p:treeTable>在单击事件后在弹出框中创建内容,但显示以下错误

无法创建托管bean popupTreeTableManagedBean。结果发现以下问题: -托管bean类 beans.PopupTreeTableManagedBean的托管bean popupTreeTableManagedBean不声明一个公共的无参数的构造函数。-管理bean类beans.PopupTreeTableManagedBean的托管bean popupTreeTableManagedBean不声明一个公共的无参数的构造函数。

这是我的代码片段

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)

jsf constructor managed-bean

-1
推荐指数
1
解决办法
1298
查看次数