【问题标题】:Setting the value for jsf InputSecret during page load from the managed bean在从托管 bean 加载页面期间设置 jsf InputSecret 的值
【发布时间】:2011-04-16 03:09:09
【问题描述】:

我正在创建一个数据库设置 jsf 页面,该页面在页面加载期间显示属性文件中的值。然后用户更新页面并按下提交,属性文件中的值将得到更新。

我遵循了 Balusc 提供的这个解决方案

Invoke JSF managed bean action on page load

并在支持 bean 的构造函数中设置值。

  public DbSettingsBean()
  {        
    this.setUserName(helper.getValueForProperty("user_name"));
    this.setPassword(helper.getValueForProperty("password"));
  }

虽然我设法在页面加载期间从属性文件中显示用户名。在页面加载期间,我无法显示密码的 inputsecret 值。它仍然是空白的。

有没有其他方法可以在页面加载时显示密码?

我正在使用 JSF RI 1.2 和 Richfaces 3.3.2

提前致谢

【问题讨论】:

    标签: java jsf


    【解决方案1】:

    更新:

    我道歉:

    唯一需要添加的是redisplay="true",因为出于安全原因没有显示密码


    【讨论】:

    • 感谢您的快速解决方案。我会处理它并回复你。
    • 感谢您的链接。虽然这不是我想要的确切解决方案,但我设法通过在 中添加 redisplay="true" 来解决这个问题。该站点使用此属性来保存密码。再次感谢!
    • @org,对不起,但我必须这样做:@mvg:我必须警告你,roseindia.net 是terrible source。只要您是 JSF 新手,请忽略此站点。它通常只会教授不良做法。
    • @BalusC 感谢您的信息。最后,对于这个问题,目前得出的解决方案是 redisplay="true" ,下次我会注意的。谢谢
    • @Balusc 感谢您的信息。虽然很可怕。感谢分享。
    【解决方案2】:

    出于安全原因,<h:inputSecret> 默认情况下确实不会重新显示密码。但是,您可以通过设置 redisplay="true" 将其打开。

    <h:inputSecret value="#{bean.password}" redisplay="true" />
    

    另见其TLD document

    redisplay

    标志表明该字段中的任何现有值都应在创建表单时呈现。由于这是一个潜在的安全风险,默认情况下不显示密码值。

    【讨论】:

    • 是的。我刚刚将我的代码与来自 roseindia 的代码进行了比较,发现 redisplay="true" 是主要区别并更正了我的源代码,现在它可以正常工作了。
    猜你喜欢
    • 2016-06-26
    • 1970-01-01
    • 2012-09-09
    • 2011-03-31
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    相关资源
    最近更新 更多