HTML 页面中引用控制器变量

发布于 2024-12-20 17:58:13 字数 470 浏览 1 评论 0原文

我的 Java servlet 应用程序的 WEB-INF 目录中有许多视图文件(扩展名为 .HTML)。我希望能够从视图中引用控制器中定义的变量。

控制器:

String email_address = ...

视图:

<INPUT type='text' name='email' value='<%= email_address %>'/>

不幸的是,<%= %>语法无效。

正确的语法是什么?

** 编辑 **

如果有什么不同,我将通过以下方式引用 HTML:

request.getRequestDispatcher("/WEB-INF/form_auth.html").forward(request, response);

I have a number of view files (with .HTML extension) located in the WEB-INF directory of my Java servlet application. I would like to be able to reference the variables that have been defined in the controller from within the view.

controller:

String email_address = ...

view:

<INPUT type='text' name='email' value='<%= email_address %>'/>

Unfortunately, the <%= %> syntax isn't valid.

What is the correct syntax?

** edit **

If it makes a difference, I'm referencing the HTML by:

request.getRequestDispatcher("/WEB-INF/form_auth.html").forward(request, response);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半透明的墙 2024-12-27 17:58:13

没有相应的语法;这样的功能不存在。

您需要将对象放入作用域中才能在 JSP 中引用它。在您的情况下,如果您想要引用 HTML 文件中的动态属性,则需要通过 JSP 处理器(或其他模板机制)运行 HTML 文件。

或者,您可以通过servlet机制映射.html URL,并使用JSP(或其他模板)作为.html URL的实际实现。

如今,这不是通过 scriptlet 完成的(<%= %> 语法)。这应该使用普通的 JSP EL(${ } 语法)和范围属性(通常是请求范围)来完成。

例如,您可以公开单个变量:

// Java:
// Java conventions would name this "emailAddress", not "email_address".
request.setAttribute("emailAddress", emailAddress);

<%-- JSP --%>
${emailAddress}

或者创建一个完整的 DTO 对象:

// Java
dto.emailAddress = "[email protected]";
request.setAttribute("dto", dto);

<%-- JSP --%>
${dto.emailAddress}

There is no syntax for that; such functionality does not exist.

You need to put an object into scope in order to reference it in JSP. In your case, if you want to reference dynamic properties in an HTML file, you'd need to run the HTML file through the JSP processor (or other templating mechanism).

Alternatively, you can map .html URLs through the servlet mechanism, and use JSP (or other templates) as the actual implementation of the .html URLs.

These days this is not done via scriptlets (<%= %> syntax). This should be done using normal JSP EL (${ } syntax) and scoped attributes, generally the request scope.

For example, you could expose a single variable:

// Java:
// Java conventions would name this "emailAddress", not "email_address".
request.setAttribute("emailAddress", emailAddress);

<%-- JSP --%>
${emailAddress}

Or create a complete DTO object:

// Java
dto.emailAddress = "[email protected]";
request.setAttribute("dto", dto);

<%-- JSP --%>
${dto.emailAddress}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文