Problema com struts2

8 respostas
dahenz

Bom dia!

Estou mostrando uma lista de informações (mensagens) em uma tela utilizando as tags <s:iterator> e <s:property>. Acontece que existe um campo do tipo TEXT no banco que deve ser mostrado, esse campo deve conter até 250 caracteres, sendo que esses caracteres também devem ser mostrados. O problema é que não consigo quebrar a linha quando o texto ultrapassa o tamanho de uma div por exemplo…

Alguém sabe me dizer como faço para quebrar linha quando um campo do tipo caracter é muito grande???

Obrigado…

8 Respostas

mInEiRo

Explique melhor.
Não entendi o que vc quer.

VictorAJ

Olá.

Acho que você pode resolver esse problema de forma muito simples.

Tipo, suponhamos que essa seja a sua div:

<div>
  <s:property value="campo_texto"/>
</div>

Acho, que se você fizer:

<div style="width: 100px">
  <s:property value="campo_texto"/>
</div>

Deve resolver seu problema, pois agora, você está explicitamente dando um tamanho para sua div.

Claro que o jeito mais bonito de se fazer isso é colocar num arquivo CSS, criando uma classe para tal, mas faz esse teste e vê se te ajuda.

E claro, poste aqui se funcionou!

Espero ter ajudado.

Boa sorte!

dahenz

Estou fazendo dentro de uma div como segue:

<div id="divcolmensagem" align="left">
	                          <b>Mensagem:</b>
	                          <br>
	                          <s:property value="mensagem" />	                       
	                       </div>

Essa div possui o seguinte estilo:

#divcolmensagem{

	position: relative;
	width: 600px;
	height: 50px;
	
}

Mas o texto ultrapassa as divisões dela.....

O que estou fazendo de errado?

VictorAJ

É. Na verdade seu problema não é com o Struts 2.

O seguinte trecho de código simula o mesmo problema que você está tendo:

<html>
<body>
	<div style="position: relative; border: 1px solid black; width: 30px; height: 100px; top:110px; left: 30px;">
	       aaaaaaaaaaaaaaaaaaaaaaaa
	</div>
</body>
</html>

E eu também não consegui resolver. rs!

dahenz

Não funcionou… o div aceita quebra de página para textos fixos… quando utilizo textos dinâmicos com a tag <s:property> não funciona…
:frowning:

VictorAJ

Cara, faz o seguinte: ao invés de usar property, use a EL mesmo, ou seja, faz assim:

<div id="divcolmensagem" align="left">  
  <b>Mensagem:</b>  
  <br>  
   <span>${mensagem}</span>
</div>

Eu sempre exibo mensagens nos meus sisteminhas e não lembro de ter visto esse tipo de problema, e eu nunca uso o <s:property>.

E outra parada: certifique-se que no topo do seu JSP, esteja o seguinte:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

Valeu!

dahenz

Olá Victor!! Valew pelas dicas... mas também não funcionou....

Vou mandar o código completo....

<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib prefix="s" uri="/struts-tags" %>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="StyleSheet" type="text/css" href="css/mensagens.css" media="screen">
            <p>
            <b>Para deixar sua mensagem <a href="postarmensagem.jsp" target="_self">clique aqui!</a></b>
			<table>
			   <tr>
			      <td>
			         <s:iterator value="mensagens">			      
	                       <div style="width:300px">
	                          <b>Mensagem:</b>
	                          <br>
	                          <span>${mensagem}</span>	                         	                       
	                       </div>
			         </s:iterator>			      
			      </td>
			   </tr>
			</table>
VictorAJ

Cara, não consegui mesmo simular esse erro. Só acontece quando é uma sequencia repetida de caracteres, sem espaços. Quando não, quebra na boa.

Tipo, assim, o erro acontece:

<html>
<body>
	<div style="border: 1px solid black;width:100px;">
	aaaaaaaaaaaaaaaaaaaaaa
	</div>
</body>
</html>

Mas assim, não:

<html>
<body>
	<div style="border: 1px solid black;width:100px;">
	Assim o erro não vai acontecer!
	</div>
</body>
</html>

Conseguiu alguma coisa?

Criado 10 de setembro de 2009
Ultima resposta 12 de set. de 2009
Respostas 8
Participantes 3