3

有没有办法在 JSP 文件中使用 struts2 技术子串?我的意思是,struts2 有自己的 taglib,也使用了 ognl。如何从堆叠值或 bean 值中获取子字符串?

4

5 回答 5

3

http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html

查找 fn:substring 及其变体。

我用过 Struts 1,但不是 2。

于 2008-09-15T17:33:39.450 回答
1

Struts2 使用OGNL。这意味着您可以直接在 S2 标记中调用对象方法。

像这样:

<s:property value="str.substring(0, 5)"/>
于 2012-09-28T20:21:17.943 回答
1

不。

如果您需要在 JSP 中解析数据(子字符串),那么您可能正在将业务逻辑(它如何工作)与您的表示逻辑(它如何显示)混合在一起——它们应该是分开的。如果您在 JSP 中执行大量条件、计算、解析等,那么您正在为自己创造很多(未来的)痛苦。

相反,将这些关注点分开——让 JSP 变得非常简单,除了按原样显示数据或根本不显示数据之外没有其他逻辑,并在需要时加上简单的循环。将所有重要的逻辑放入一个 Java 类中,该类将数据推送到 JSP 中,在那里您将拥有 Java 的全部功能。尽可能让 JSP 成为您基于 Java 的应用程序的一层薄薄的“皮肤”。

有关详细讨论,请参阅 Terence Parr 的白皮书,网址为http://www.cs.usfca.edu/~parrt/papers/mvc.templates.pdf。为自己省去很多心痛和维护。

于 2008-11-07T18:47:46.407 回答
1
fn:substring(YOUR_FIELD, START_INDEX, END_INDEX)

例如,如果您想获取字符串的前 3 个字符,您可以这样做:

${fn:substring('scrooge', -1, 3)}

这是您可以使用的 XML 命名空间,它应该与 <% include%> 语句的地址相同

xmlns:fn="http://java.sun.com/jsp/jstl/functions"
于 2011-07-27T17:11:55.393 回答
0

在某些情况下要注意函数库,尤其是在使用 Websphere 进行部署时!我工作的公司部署到 Websphere 6.0 版本 11,它不能正确支持函数库(放置在标签主体内时不能正常运行)。我记得他们在版本 13 中修复了它。不过,您始终可以创建自己的 JSP 标记来做任何事情,因此您可以这样做来解决问题。

于 2008-09-16T02:45:07.427 回答