【问题标题】:How to add text in Facelets如何在 Facelets 中添加文本
【发布时间】:2014-10-19 00:50:19
【问题描述】:

我是网络编程新手,所以这是一个初学者问题。

在我的 Web 应用程序中,它是一个带有 JSF 框架的 maven 项目(大学项目),我有一些页面只有文本,显示关于我的假航空公司公司的各种信息(仅由 <p><h1> 组成)。现在,我的问题。我应该只是“硬编码”JSF 页面上的信息,还是应该使用beans 来获取我的文本和标题?

我的信息页面上的信息将保持不变,永远不会改变。

如果这个问题不适合在这里问,请告诉我,我会删除它。

【问题讨论】:

  • 你的 xhtml 和 Java 类是什么样子的?
  • @nityan 我还没有任何 managedbean 类。我的模型中没有类可以处理我想要显示的文本。页面的 xhtml 只是一个没有任何头部的常规 xhtml 页面,因为它使用具有必要头部信息的模板。
  • 在这种情况下,我建议进行适当的练习,您应该将航空公司信息存储在某处并使用 bean 类来显示信息(如果这在您的项目/作业范围内)
  • @nityan 您建议将其存储在哪里?在 bean 类的最后一个字符串中?另外,我应该使用 viewscoped 来获取该文本吗?

标签: jsf facelets


【解决方案1】:

既然你已经声明信息永远不会改变,那么将它存储在 bean 类中的字符串中就可以了,并使用 getter 方法来检索数据

@ManagedBean
@SessionScoped
public final class Airlineimplements Serializable
{
    private static final long serialVersionUID = 47493274L;

    private String title = "Air Canada";
    private String headquarters = "Toronto Ontario Canada";

    public Airline()
    {
    }

    public String getTitle()
    {
        return title;
    }

    public String getHeadquarters()
    {
        return headquarters;
    }
}

这是@RequestScoped,这样您就可以检索每个请求的信息,并在请求后将信息丢弃。

@RequestScoped bean 将在每个请求结束时被丢弃,并在每个新请求时重新创建。

关于@ViewScoped@RequestScoped 的完整答案

Difference between View and Request scope in managed beans

虽然这应该是@SessionScoped,它会在会话期间保留信息。

对于Serializable UID,序列化运行时为每个可序列化类关联一个版本号,称为serialVersionUID,在反序列化期间使用该版本号来确保Serialized对象的调用者和接收者具有相同的加载类。

关于可序列化的更多信息

http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html

这里有一些针对初学者的 JSF 附加教程

http://www.tutorialspoint.com/jsf/

http://www.vogella.com/tutorials/JavaServerFaces/article.html

【讨论】:

  • 又是一个初学者问题,这是什么意思:private static final long serialVersionUID = 47493274L; ?另外,为什么更喜欢 Requestscoped 呢?
  • 谢谢!这很有帮助!
  • @BalusC 感谢您的建议,我在 JSF 教程上添加了一些链接。另外,您应该在这里使用正确的资源包。抱歉,我只是提供一些 JSF 知识来帮助人们入门。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多