当前位置: 首页 > 面试题库 >

将JSF inputText与后备bean的字段链接而不显示其值

龙欣德
2023-03-14
问题内容

我有这样的支持bean:

@ManagedBean
@SessionScoped
public class TestBean {

    private String testString;

    public String getTestString() {
        return testString;
    }

    public void setTestString(String testString) {
        this.testString = testString;
    }
}

我的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 xmlns="http://www.w3.org/1999/xhtml"    
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      >

    <h:head></h:head>

    <h:body>

        <h:form>
            <h:inputText value="#{testBean.testString}"/>
            <h:commandButton action="#{testController.testAction}"/>
        </h:form>

    </h:body>

 </html>

我想要的一切-使我的h:inputText元素没有价值(空)。
我是JSF的新手,所以,您能帮我吗?
最诚挚的问候!

UPD!
它是简化的代码,我testString在其他地方使用,并且testString有价值,我想隐藏它!我想保持这一价值。


问题答案:

假如它确实是一个请求/视图作用域的
bean,您可能是浏览器内置的自动完成/自动填充功能的受害者。您可以通过添加autocomplete="off"到有问题的输入组件来关闭它。

<h:inputText ... autocomplete="off" />

再次注意,输入的不是JSF,而是Web浏览器本身。清除浏览器缓存,您将看到浏览器不再这样做。根据浏览器的版本/版本,您也可以重新配置它,以使其不那么急于自动完成。

更新
:根据您的问题更新,您的bean原来是会话作用域的。这不是基于请求/视图的表单的正常范围。会话范围的Bean实例在同一HTTP会话中的所有浏览器窗口/选项卡(读取:所有请求/视图)之间共享。通常,您仅在会话中存储登录用户及其首选项(语言等)。当您关闭并重新启动整个浏览器,或使用其他浏览器/机器时,您只会得到一个全新的实例。

将其更改为请求或查看范围。在这个特定的简单示例中,请求范围应满足:

@ManagedBean
@RequestScoped

*根据评论 *更新2

哦,对了,我最好使用@RequestScoped。但这不能解决我的问题-我想保留此值,但我不想在textInput中显示它。该值在请求-
响应周期的上下文中很重要。

现在,具体的功能要求更加明确了(在以后的问题中,请注意在准备问题时,我不知道您最初是这样问的)。在这种情况下,请使用具有以下两个属性的视图范围的bean:

@ManagedBean
@ViewScoped
public class TestBean {

    private String testString;
    private String savedTestString;

    public void testAction() {
        savedTestString = testString;
        testString = null;
    }

    // ...
}

您也可以选择将其存储在数据库或注入的托管Bean的属性中,该属性实际上又位于会话范围内。



 类似资料:
  • 我在网站上列出了一个号码,当用户在手机上时,我想成为一个可调用的链接,但在桌面上时不会显示为链接。我可以这样做:a href=“tel:5550005555”

  • http://www.russellyazbeck.com/aanasea http://www.russellyazbeck.com/aanasea/template.pdf 下面是PHP

  • 问题内容: 我正在创建一个使用链接(JButton扩展名)的帮助系统,该链接可以展开和折叠带有JLabel的子面板。链接和可折叠面板都可以,但是我在实现查找对话框时遇到了麻烦。我希望能够突出显示用户搜索的部分文本。我认为我使用文本属性为链接中的文本加下划线使我无法突出显示文本的某些部分,但是我不确定如何做不同的事情。这是我的链接子类的链接类的代码: 如何在链接中实现突出显示的文本而又不去除下划线?

  • 我有一个由LiberOffice Draw 4.1.0.4创建的PDF表格。 表单包含文本字段、复选框和单选按钮 在我为字段设置值并使用PDFBox(2.0.21)展平表单后,无法显示字段值 我认为这可能是该字段注释的外观问题,但我不知道如何使其正确 测试PDF

  • 问题内容: 我是tkinter的新手,我注意到当我尝试将图片添加为窗口的背景时,它不会显示。这是代码。 问题答案: 您需要使用指定选项。 另外,如effbot在PhotoImage的页面中所述, 您必须在Python程序中保留对图像对象的引用,方法是将其存储在全局变量中,或者将其附加到另一个对象。

  • 在我使用Spring boot和Thymeleaf的项目中,我尝试以表格格式发布一个值列表, 1)我列出一个实体清单, 2)设置为包装类, 如果我在输入框中输入th:field with disabled attibute意味着它也只传递NULL,请帮助我…谢谢 下面是完整的HTML代码 @控制器