如何在jsp中子串?

时间:2008-09-15 17:14:38

标签: jsp struts2

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

5 个答案:

答案 0 :(得分:3)

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

查找fn:substring及其变体。

我使用过Struts 1,但不是2。

答案 1 :(得分:1)

别。

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

相反,将这些问题分开 - 使JSP变得简单,没有逻辑,除了根本不显示数据,还有需要的简单循环。将所有非平凡的逻辑放入一个Java类中,该类将数据推送到JSP中,在那里您将拥有Java的全部功能。尽可能多地使JSP仅仅是基于Java的应用程序的薄“皮肤”。

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

答案 2 :(得分:1)

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

像这样:

<s:property value="str.substring(0, 5)"/>

答案 3 :(得分:0)

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

答案 4 :(得分:0)

fn:substring(YOUR_FIELD, START_INDEX, END_INDEX)

例如,如果你想得到字符串的前3个字符,你可以这样做:

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

这是您可以使用的XML命名空间,它应该与&lt;%include%&gt;的地址相同声明

xmlns:fn="http://java.sun.com/jsp/jstl/functions"