我知道类似以下三行
<%= x+1 %>
<%= request.getParameter("name") %>
<%! counter++; %>
是一种老式的编码方式,在JSP版本2中存在一种避免JSP文件中出现Java代码的方法。什么是可选的JSP2行,这种技术叫什么?
我知道类似以下三行
<%= x+1 %>
<%= request.getParameter("name") %>
<%! counter++; %>
是一种老式的编码方式,在JSP版本2中存在一种避免JSP文件中出现Java代码的方法。什么是可选的JSP2行,这种技术叫什么?
当前回答
您提出了一个很好的问题,虽然得到了很好的答案,但我建议您取消JSP。过时的技术终将消亡。使用现代方法,如模板引擎。您将有非常清晰的业务层和演示层的分离,并且模板中肯定没有Java代码,因此您可以直接从web演示编辑软件生成模板,在大多数情况下利用WYSIWYG。
当然,不要使用过滤器和前后处理,否则您可能会遇到支持/调试困难,因为您始终不知道变量从何处获得值。
其他回答
如果有人真的反对用多种语言编程,我建议使用GWT。理论上,您可以避免所有JavaScript和HTML元素,因为GoogleToolkit将所有客户端和共享代码转换为JavaScript。你不会有问题,所以你有一个没有任何其他语言编码的网络服务。您甚至可以使用扩展(smartGWT或Vaadin)提供的某些默认CSS。你不需要学习很多注释。
当然,如果你愿意的话,你可以深入代码的深处,注入JavaScript,丰富HTML页面,但如果你愿意,你真的可以避免它,结果会和其他框架一样好。我认为值得一试,而且基本的GWT有很好的文档记录。
当然,许多程序员同事在此描述或推荐了其他几种解决方案。GWT适用于那些真正不想处理web部件或将其最小化的人。
Python世界的一个好主意是模板属性语言;TAL是由Zope(因此又称为“Zope页面模板”,ZPT)引入的,是一种标准,也有PHP、XSLT和Java的实现(我使用过Python/Zope和PHP的化身)。在这类模板语言中,上面的一个示例可能如下所示:
<table>
<tr tal:repeat="product products">
<td tal:content="product/name">Example product</td>
<td tal:content="product/description">A nice description</td>
<td tal:content="product/price">1.23</td>
</tr>
</table>
代码看起来像普通的HTML(或XHTML)加上XML命名空间中的一些特殊属性;它可以用浏览器查看,也可以由设计师安全地调整。
支持宏以及国际化和本地化:
<h1 i18n:translate="">Our special offers</h1>
<table>
<tr tal:repeat="product products">
<td tal:content="product/name"
i18n:translate="">Example product</td>
<td tal:content="product/description"
i18n:translate="">A nice description</td>
<td tal:content="product/price">1.23</td>
</tr>
</table>
如果内容的翻译可用,则使用它们。
不过,我对Java实现不太了解。
Wicket也是一种将Java与HTML完全分离的替代方案,因此设计师和程序员可以在彼此不了解的情况下一起工作并处理不同的代码集。
看看Wicket。
只需使用JSTL标记和EL表达式。
在MVC架构模式中,JSP表示视图层。在JSP中嵌入Java代码被认为是一种糟糕的做法。
您可以将JSTL、freeMarker和velocity与JSP一起用作“模板引擎”。
这些标记的数据提供者取决于您正在处理的框架。Struts 2和WebWork作为MVC模式的实现,使用OGNL“非常有趣的技术将Beans财产公开给JSP”。