在 servlet 中构建对 bean 的引用 EL 标记



我有一个将外部HTML文件读取为字符串的servlet。我想在这个 html 中添加一个特定的按钮,然后引用我的一个 EJB。

因此,我插入了一个:

String button=<h:commandButton value="Test" action="#{myBean.buttonMethod()}" />;

但是这个表达式在 servlet 的输出中不会通过以下方式计算:

out.println(thePage);

我确实只看到了按钮的代码,但没有解释。如何在 servlet 中动态插入对我的一个方法的引用?

这不是HTML代码。这就是 JSF 代码。JSF 代码应该通过在 Facelet 或 JSP 文件中声明标签并由FacesServlet通过调用其 URL 来处理它来执行。绝对不是像你想象的那样理解JSF的网络浏览器。它只理解 HTML。

目前还不清楚具体的功能需求是什么,以及为什么你试图以这种方式混合JSF和Servlets(我终生无法想象一个合理的现实世界原因),但是假设你有一个提交给特定servlet的纯HTML <form>,那么其中一种方法就是只编写普通的HTML代码(这也是JSF最终产生的)。

<input type="submit" name="buttonMethod" value="Test" />

在该特定<form action>后面的 servlet 中,执行类似操作

if (request.getParameter("buttonMethod") != null) {
    myBean.buttonMethod();
}

最新更新