Struts2 (DateFormatSymbols)

[...]
<s:if test="!materias.isEmpty">
	<table width="730" cellspacing="1" cellpadding="4">
		<tr>
			<tr width="120">Matéria</tr>
			<% String[] nomesMeses = DateFormatSymbols.getInstance().getShortMonths(); %>
			<% for (int mes = 0; mes < 12; mes++) { %>
				<td><%=nomesMeses[mes]%></td>
			<% } %>
			<td colspan="4" >Total</td>
		</tr>
		<s:iterator value="materias.entrySet()">
			<tr>
				<td><s:property value="key.nomeMateriaAbreviado"/></td>
				<s:iterator value="value">
					<td><s:property/></td>
				</s:iterator>
				<td><s:property value="total"/></td>
			</tr>
		</s:iterator>
	</table>
</s:if>
[...]

Olá amigos, tenho uma página JSP que preciso criar uma linha onde cada coluna seja criado os meses [Janeiro, Fevereiro,…,Novembro, Dezembro]…

A única maneira foi criar um código java na página JSP, alguém tem ideia de como fazer isso com o struts2?

Grato,

Obrigado.

Você está fazendo exatamente o contrário do que visa o uso de Struts 2.
Você não tem que se preocupar com isto na camada view, mas, na controller (Action, no caso).
A view só precisa mostrar e validar coisas simples, inerentes à interação com o usuário.
Logo, se vai criar uma tabela onde cada coluna representa um mês do ano, faça isso na Action e já mande pronto para a jsp.

No caso então, esse código java que engessei na página JSP devo fazer na Action e na página JSP só obtenho o objeto vindo da Action me retornando esta lista, correto?

Sim.

Em vez de fazer assim usa a tag foreach da api jstl que é a forma mais correta de se fazer uma página jsp

Ou utilizar o <s:iterator>
A questão é que ele estava obtendo os valores na própria jsp e, isso, não é o mais adequado.
Por isso sugeri que obtivesse os dados na action e então passasse a jsp.

Ou utilizar o <s:iterator>
A questão é que ele estava obtendo os valores na própria jsp e, isso, não é o mais adequado.
Por isso sugeri que obtivesse os dados na action e então passasse a jsp.[/quote]

Eu entendi o que você estava querendo dizer apenas complementei falando que ele deveria utilizar as tags e não realmente codigo java.

e caso não queira utilizar diretamente o struts para obter o objeto com os messes você pode fazer isto utilizando somente tags na sua jsp, que seria mais correto que a forma como você fez no caso ficaria mais ou menos assim

<jsp:useBean id="messes" class="java.text.DateFormatSymbols" /> <c:forEach items="${messes.shortMonths }" var="mes"> ${mes } </c:forEach>

Ou utilizar o <s:iterator>
A questão é que ele estava obtendo os valores na própria jsp e, isso, não é o mais adequado.
Por isso sugeri que obtivesse os dados na action e então passasse a jsp.[/quote]

Eu entendi o que você estava querendo dizer apenas complementei falando que ele deveria utilizar as tags e não realmente codigo java.

e caso não queira utilizar diretamente o struts para obter o objeto com os messes você pode fazer isto utilizando somente tags na sua jsp, que seria mais correto que a forma como você fez no caso ficaria mais ou menos assim

<jsp:useBean id="messes" class="java.text.DateFormatSymbols" /> <c:forEach items="${messes.shortMonths }" var="mes"> ${mes } </c:forEach>[/quote]
Com o iterate do struts, ele teria menos complicação, menos taglibs e menos coisas para se preocupar.
Concordo que JSTL e EL é super simples, mas ele já está perdidinho agora, imagina se misturar as coisas…
Enfim, é uma ótima opção.