HTML 页面中引用控制器变量
我的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
没有相应的语法;这样的功能不存在。
您需要将对象放入作用域中才能在 JSP 中引用它。在您的情况下,如果您想要引用 HTML 文件中的动态属性,则需要通过 JSP 处理器(或其他模板机制)运行 HTML 文件。
或者,您可以通过servlet机制映射
.html
URL,并使用JSP(或其他模板)作为.html
URL的实际实现。如今,这不是通过 scriptlet 完成的(
<%= %>
语法)。这应该使用普通的 JSP EL(${ }
语法)和范围属性(通常是请求范围)来完成。例如,您可以公开单个变量:
或者创建一个完整的 DTO 对象:
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:
Or create a complete DTO object: