我有一个将外部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();
}