Pessoal,
gostaria de saber como posso preencher todos os
campos do meu formulário sendo que eu tenho essas
informações num objeto.
Com o Struts eu consigo o contrário, ou seja, preencher o
objeto apartir do form.
Abraços
Pessoal,
gostaria de saber como posso preencher todos os
campos do meu formulário sendo que eu tenho essas
informações num objeto.
Com o Struts eu consigo o contrário, ou seja, preencher o
objeto apartir do form.
Abraços
Vc tah com qual versão do struts, 1x ou 2x?
A versão é 2x
Trabalhei uma vez com struts2 senão me engano tu tens como fazer uma validação no construtor da action, assim tu tens como “preencher” o teu form.
Espero ter ajudado…
Cara, na verdade não entendi bem como assim
fazer uma validação no construtor da action.
se puder dar um exemplo.
Abraço
Opa… na verdade oque acontecia é que eu tinha um metodo na action chamado openForm() onde eu verificava se o objeto ja estava populado ou não, caso estivesse eu exibia as informações no form para alteração caso não eu criava um novo objeto, neste caso eu utilizava uma jsp para inclusão e alteração.
Quando chegar em casa posso até dar uma olhada no codigo pra ver se era isso mesmo… não me lembro 100%…
Se puder dar uma olhada.
é exatamente o que eu estou querendo exibir as informações no form.
Vlw
Se puder dar uma olhada.
é exatamente o que eu estou querendo exibir as informações no form.
Vlw
Quando chegar em casa eu dou uma olhada e te mando o exemplo…
Flow
Leoduval,
se ainda puder postar o exemplo ficarei grato.
Pois ainda não consegui resolver meu problema.
Abraço
Dotor, para voce popular os campos com o objeto, infelismente voce tera que passar todos os valores dos atributos do objeto para os atributos que você criou na action.
Tipo, voce obteve o objeto “casa” em um metodo na action, e no form voce quer mostrar os valores de “cor, portas e janelas” desta casa.
Voce não vai conseguir um binding diretamente do objeto (ex: casa.cor) para setar este atributo na tela.
Voce tem que criar o atributo cor na action e passar o valor de casa.cor para esse atributo, entendeu?
Se fosse JSF voce conseguiria apontar para os valores diretamente do objeto, mais em Struts isso não é possivel.
Ou (mais não acho q seja o caso), voce pode usar EL e obter esse objeto na jsp!
Espero ter ajudado!
abraço fuiiii
Danilo,
tenho que fazer algo além de de criar um atributo na action
e colocar o nome desse atributo no campo que quero ser preenchido?
por exemplo, fiz assim.
na action
String nome;
get e set
execute(){
...
nome = "testeNOme";
}
no jsp
<td><input type="text" name="nome" id="nome" value="" class="obr" />
mas não deu certo.
Abraços
Danilo,
tenho que fazer algo além de de criar um atributo na action
e colocar o nome desse atributo no campo que quero ser preenchido?
por exemplo, fiz assim.
na actionString nome; get e set execute(){ ... nome = "testeNOme"; }no jsp
<td><input type="text" name="nome" id="nome" value="" class="obr" />mas não deu certo.
Abraços
tenta colocar em value assim:
<td><input type="text" name="nome" id="nome" value="${nome}" class="obr" />
responde ae se funfo…
abraço
Fiz a mudança mas ainda não funcionou não.
Faço isso na função execute() mesmo?
Abraço
Será que não tem como eu colocar o objeto da action num bean e carregá-lo
na página?
Danilo,
tenho que fazer algo além de de criar um atributo na action
e colocar o nome desse atributo no campo que quero ser preenchido?
por exemplo, fiz assim.
na actionString nome; get e set execute(){ ... nome = "testeNOme"; }no jsp
<td><input type="text" name="nome" id="nome" value="" class="obr" />mas não deu certo.
Abraços
fio, coloquei errado kkkk tenta assim:
<td><input type="text" name="nome" id="nome" value="%{nome}" class="obr" />responde ae se funfo…
abraço
Danilo,
tenho que fazer algo além de de criar um atributo na action
e colocar o nome desse atributo no campo que quero ser preenchido?
por exemplo, fiz assim.
na actionString nome; get e set execute(){ ... nome = "testeNOme"; }no jsp
<td><input type="text" name="nome" id="nome" value="" class="obr" />mas não deu certo.
Abraços
tenta colocar em value assim:
<td><input type="text" name="nome" id="nome" value="${nome}" class="obr" />responde ae se funfo…
abraço
fio, coloquei errado kkkk tenta assim:
<td><input type="text" name="nome" id="nome" value="%{nome}" class="obr" />
responde ae se funfo…
abraço
Infelizmente não funcionou.
ele preenche o campo com essa string “%{nome}”
Infelizmente não funcionou.
ele preenche o campo com essa string “%{nome}”
Cara, desculpa, eu to correndo com as coisas aqui do trabalho e nem prestei atenção rsrs
voce precisa usar as tags struts e não html padrão
ex:
//como esta:
<td><input type="text" name="nome" id="nome" value="" class="obr" />
//como deve ficar:
<td><s:textfield name="nome" id="nome" value="%{nome}" />
voce tbm não pode esquecer da tag <s:form> substituindo no seu jsp, que sem ela as tags struts nao funfa!
tenta ai e ve se vai funfar ok?
abraço e desculpa pela correria
Cara,
não funcionou não. Começo a pensar que tenho
fazer algo mais na minha action;
vou postá-la, talvez ela esteja errada.
@ParentPackage("json-default")
public class CarregaAction {
String nome = "testedenome";
@Actions({ @Action(value = "/alt", results = { @Result(name = "sucesso", type = "json") }) })
String execute(){
nome = "testedenomeaction";
return "sucesso";
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getJSON() {
return execute();
}
}
Abraço e agradeço pela ajuda
Cara,
não funcionou não. Começo a pensar que tenho
fazer algo mais na minha action;
vou postá-la, talvez ela esteja errada.@ParentPackage("json-default") public class CarregaAction { String nome = "testedenome"; @Actions({ @Action(value = "/alt", results = { @Result(name = "sucesso", type = "json") }) }) String execute(){ nome = "testedenomeaction"; return "sucesso"; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getJSON() { return execute(); } }Abraço e agradeço pela ajuda
cara, nunca trampei com struts com annotations, fui direto pro jsf kkkk
Mais, sua classe precisa extender a classe actionsupport, e sua classe nao esta extendendo nada(isso sem annotations).
o resto ta certo cara, se nao der certo, pasta tbm a sua jsp por favor.
Cara, essa é minha página(tirei as outras divs para diminuir o texto)
<%@ page language="java" import="java.sql.*" import="java.util.*"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:s="/struts-tags">
<head>
<title>TESTEi</title>
<link rel="shortcut icon" href="img/ifrs.ico" type="img/x-icon" />
<script type="text/javascript" src="js/jquery-1.4.2.min.js" ></script>
<sj:head locale="pt-BR" jqueryui="true" defaultIndicator="myDefaultIndicator" jquerytheme="smoothness"/>
</head>
<body>
<div id="fundo_conteudos">
<s:form id="" action="alt" method="post" acceptcharset="utf-8">
<table>
<tr>
<td><s:textfield name="nome" id="nome" value="%{nome}" cssClass="obr" label="Nome Completo"/></td>
</tr>
</table>
</s:form>
</div>
</div>
</div>
</body>
</html>
Cara, essa é minha página(tirei as outras divs para diminuir o texto)<%@ page language="java" import="java.sql.*" import="java.util.*"%> <%@ taglib prefix="s" uri="/struts-tags"%> <%@ taglib prefix="sj" uri="/struts-jquery-tags"%> <%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:s="/struts-tags"> <head> <title>TESTEi</title> <link rel="shortcut icon" href="img/ifrs.ico" type="img/x-icon" /> <script type="text/javascript" src="js/jquery-1.4.2.min.js" ></script> <sj:head locale="pt-BR" jqueryui="true" defaultIndicator="myDefaultIndicator" jquerytheme="smoothness"/> </head> <body> <div id="fundo_conteudos"> <s:form id="" action="alt" method="post" acceptcharset="utf-8"> <table> <tr> <td><s:textfield name="nome" id="nome" value="%{nome}" cssClass="obr" label="Nome Completo"/></td> </tr> </table> </s:form> </div> </div> </div> </body> </html>
vc extendeu ActionSupport???
Sim,
a única mudança foi que ele exigiu que o método
execute fosse public, mas mesmo assim não funcionou não.
Sim,
a única mudança foi que ele exigiu que o método
execute fosse public, mas mesmo assim não funcionou não.
velho, ta estranho isso ae…
Voce colocou um breck point na action e debugo pra ver se ele ta entrando bunitinho no metodo e tals?
Eu tenho algo identico aqui e ta funfando…
Pode ser algo relacionado com configuração, não sei velho…
Mais q ta tudo certo a codificação ta…
A unica coisa diferente do q eu tenho aqui é que no <s: form> eu add uma tag theme=“simple”, mais nao acredito que seja isso nao
Vou dar mais umas tentativas aqui se eu conseguir resolver. Poso aqui o que fiz.
Qualquer coisa postarei novas dúvidas
Danilo,
consegui algum avanço fazendo assim:
<s:url id="remoteurl" action="alt"/>
<td>Nome completo</td>
<td><sj:textfield href="%{remoteurl}" name="nome" id="nome" value="%{nome}" cssClass="obr"
/></td>
</tr>
no entanto ao invés dele pegar apenas o valor guardado na variável nome ele pega assim:
{nome:“teste”}
sabe o que posso fazer para consertar isso?
Abraços