Berlin Brown wrote:
I have a jsp jstl question. It is actually kind of simple, but I still
couldnt get an answer. And it is more of a design question.
How do you do 'processing' or manipulation of a string value 'after' it
has been processed through 'el' jstl?
"I am having trouble doing basic view manipulation on data output from
the expression language. I dont 'think' I need custom tags for this,
and dont think this logic should occur at the controller or model? But
for example, if I want to modify a value before it is display to the
user but after it has been evaluated: Ie."
This is my current approach.
Would it have been more logical to place:
"<jsp:useBean id="concatValue"
class="org.spirit.servlet.bean.BotListConcatValue" />
<jsp:setProperty name="concatValue" property="maxLen" value="20" />"
Within the 'forEach' bracket?
Logic in the bean:
public String getWord() {
if (word != null && (word.length() > (maxLen + 3))) {
word = word.substring(0, (maxLen - 1)) + "...";
}
return word;
}
<jsp:useBean id="concatValue"
class="org.spirit.servlet.bean.BotListConcatValue" />
<jsp:setProperty name="concatValue" property="maxLen" value="20" />
<c:forEach items="${linklistings}"
var="listing" varStatus="status">
<c:set target="${concatValue}" property="word"
value="${listing.urlTitle}"/>
<c:out value="${concatValue.word}" />
</c:forEach>
You don't NEED a special tag for this, but I would probably implement
it that way. Or make it a el function. Either way, adding it the the
TLD is the right approach, instead of using the bean the way you do.
I agree, it doesn't really belong in the controller or the model, as it
is specific to the rendering (i.e., view) of the data.
Creating a TLD isn't too hard, and it is very easy to add an el
function (you can basically use a static function).
public static String trim(String word) {
if (word != null && (word.length() > (maxLen + 3))) {
word = word.substring(0, (maxLen - 1)) + "...";
return word;
}
and use ${mytld:trim(listing.urlTitle)} to display it.
Hope this helps,
Daniel.
'functions'. I am using pre JSP 2.0 code and I believe jstl 1.2?