Autor |
Mensagem |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 07/08/2007 16:09:41
|
robmsjr
MultiAction
Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline
|
Eu tenho uma tela jsp com o codigo abaixo
jsp:
Code:
<c:forEach var="chamadas" items="${home.chamadas}" varStatus="status">
<t:property name="chamadas[${status.index}].tipochamada.idtipochamada" mode="input" type="hidden"/>
<n:panel ><a style="font-size:9pt;font-weight:bold">${chamadas.tipochamada.tipochamada }:</a></n:panel>
<c:if test="${chamadas.tipochamada.tipoPublicacao eq tipoPublicacao.conteudo}">
<t:property label="conteudo:" name="chamadas[${status.index}].conteudo" mode="input" labelStyle="font-size:9pt;font-weight:bold" selectOnePath="/modulo/crud/Conteudo"/>
</c:if>
<c:if test="${chamadas.tipochamada.tipoPublicacao eq tipoPublicacao.galeria}">
<t:property label="galeria:" name="chamadas[${status.index}].galeria" mode="input" labelStyle="font-size:9pt;font-weight:bold" selectOnePath="/modulo/crud/Galeria"/>
</c:if>
</c:forEach>
Antes eu utilizava o select normal e não tinha nenhum problema... Agora eu alterei e coloquei o selectonepath... A parte de selecionar os conteudos e galeria funciona tranquilamente, porém quando eu vou tentar limpar dá um erro de javascript ('chamadas' não está definido).
O que poderia ser isso?
abraços e obrigado pela ajuda.
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 08/08/2007 20:24:13
|
rogel.garcia
Xiita
Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline
|
vc está utilizando alguma biblioteca javascript como prototype?
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 09/08/2007 10:58:29
|
robmsjr
MultiAction
Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline
|
Não alterei nada relacionado a javascript no projeto...então assumo que devo estar usando a biblioteca padrão do neo.
Fora que nas outras telas que uso o selectonepath funciona normalmente. Acho que o erro é relacionado ao nome do campo esta no formato 'chamadas[i].conteudo'... mas n sei pq;
Eu mandei exibir o codigo fonte, mas n consegui visualizar erro no local...
segue aqui o trecho provavel onde da problema:
Code:
<input type="hidden" name="chamadas[0].tipochamada.idtipochamada" value="3" /><span id="chamadas[0].tipochamada.idtipochamada_value"></span>
</td>
<td ><a style="font-size:9pt;font-weight:bold">Blá Blá Blá:</a></td>
<td colspan='1'>
<!-- Valor selecionado org.neo.exemplo.bean.Conteudo[idconteudo=5] -->
<input type="text" name="chamadas[0].conteudo_label" onchange="" readonly="true" value="Contaminação Alimentar" />
<input type="hidden" name="chamadas[0].conteudo" value="org.neo.exemplo.bean.Conteudo[idconteudo=5,tituloChamada=Contaminação Alimentar]" />
<button id="chamadas[0].conteudo_btn" name="chamadas[0].conteudo_btn" type="button" onclick="var c = new selecionarCallbackObject(form['chamadas[0].conteudo'], form['chamadas[0].conteudo_label'], 'org.neo.exemplo.bean.Conteudo', form['chamadas[0].conteudo_btn'], form['chamadas[0].conteudo_btnUnselect']); var win = open('/neo/SELECIONARCADASTRAR/modulo/crud/Conteudo','filha77037','width=' + (window.document.body.clientWidth) + ', height=' + (window.document.body.clientHeight) + ', top=50, left=0, resizable, scrollbars'); win.selecionarCallback = c; " style='display:none'>Selecionar</button>
<button id="chamadas[0].conteudo_btnUnselect" name="chamadas[0].conteudo_btnUnselect" type="button" onclick="chamadas[0].conteudo_label.value = ''; chamadas[0].conteudo.value = '<null>'; document.getElementById('chamadas[0].conteudo_btn').style.display=''; document.getElementById('chamadas[0].conteudo_btnUnselect').style.display='none'" style=''>Limpar</button>
valeu pela ajuda.
abraços
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 09/08/2007 18:31:13
|
rogel.garcia
Xiita
Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline
|
vou ter que fazer uma aplicacao para verificar isso...
tem como vc mandar o jsp e os beans?
[se eu demorar demais a responder vc me cobra]
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 10/08/2007 10:47:24
|
robmsjr
MultiAction
Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline
|
Posso mandar sim...
Só preciso do seu email... basta os .java e jsps neh?
Eu zipo e mando sim.
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 10/08/2007 21:53:53
|
rogel.garcia
Xiita
Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline
|
posta aqui no forum mesmo.. é mais fácil..
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 10/08/2007 21:55:35
|
rogel.garcia
Xiita
Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline
|
dá pau quando vc tenta setar o conteudo e a galeria? ou em só um caso o problema acontece?
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 11/08/2007 12:15:37
|
robmsjr
MultiAction
Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline
|
Vou ver a melhor forma de postar aqui então.
E só dá pau na hora de limpar os campos... tanto de galeria como de conteudo. Setar funciona.
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 11/08/2007 12:23:09
|
robmsjr
MultiAction
Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline
|
Vou postar os arquivos que acho necessario para fazer o teste... Caso precise de mais alguma coisa me diga que vou postando.
HomeController
Code:
package org.neo.exemplo.controller;
import java.util.List;
import org.neo.exemplo.bean.Chamada;
import org.neo.exemplo.bean.Home;
import org.neo.exemplo.bean.TipoPublicacao;
import org.neo.exemplo.service.CanalService;
import org.neo.exemplo.service.HomeService;
import org.neo.exemplo.service.SubcanalService;
import org.springframework.web.servlet.ModelAndView;
import br.com.linkcom.neo.controller.Action;
import br.com.linkcom.neo.controller.Controller;
import br.com.linkcom.neo.controller.DefaultAction;
import br.com.linkcom.neo.controller.MultiActionController;
import br.com.linkcom.neo.core.web.WebRequestContext;
@Controller(path="/modulo/PublicarHome")
public class HomeController extends MultiActionController {
HomeService service;
CanalService canalService;
SubcanalService subcanalService;
public CanalService getCanalService() {
return canalService;
}
public SubcanalService getSubcanalService() {
return subcanalService;
}
public void setCanalService(CanalService canalService) {
this.canalService = canalService;
}
public void setSubcanalService(SubcanalService subcanalService) {
this.subcanalService = subcanalService;
}
public HomeService getService() {
return service;
}
public void setService(HomeService service) {
this.service = service;
}
@DefaultAction
public ModelAndView escolherCanal(WebRequestContext request,Chamada chamada){
List<Home> lHomeFormatadas = service.findAllFormatadas();
request.setAttribute("lHome", lHomeFormatadas);
request.setAttribute("chamada", chamada);
return new ModelAndView("homeSelecionar");
}
@Action("definirPublicacao")
public ModelAndView definirConteudo(WebRequestContext request,Chamada chamada){
Home home = service.load(chamada.getHome());
request.setAttribute("home", home);
request.setAttribute("tipoPublicacao",new TipoPublicacao());
return new ModelAndView("definirConteudoHome");
}
@Action("salvar")
public ModelAndView salvar(WebRequestContext request,Home home){
System.out.print("id="+home.getIdhome());
service.saveOrUpdate(home);
service.geraXml(home);
//request.setAttribute("home", home);
return new ModelAndView("sucesso");
}
}
homeSelecionar.jsp
Code:
<%@ taglib prefix="n" uri="neo"%>
<%@ taglib prefix="t" uri="template"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<t:tela titulo="Definir Home">
<n:bean name="chamada">
<t:propertyConfig mode="input" renderAs="double" showLabel="true" >
<n:panelGrid columns="4">
<t:property label="home:" name="home" mode="input" labelStyle="font-size:9pt;font-weight:bold" itens="${lHome}"/>
<n:submit action="definirPublicacao" >publicar</n:submit>
</n:panelGrid>
</t:propertyConfig>
</n:bean>
</t:tela>
definirConteudoHome ( onde está ocorrendo o erro)
Code:
<%@ taglib prefix="n" uri="neo"%>
<%@ taglib prefix="t" uri="template"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<t:tela titulo="Definir Home">
<n:bean name="home">
<t:property name="canal.idcanal" mode="input" type="hidden"/>
<t:property name="subcanal.idsubcanal" mode="input" type="hidden"/>
<t:property name="idhome" mode="input" type="hidden" />
<t:property name="exibicao" mode="input" type="hidden" />
<t:property name="titulo" mode="input" readonly="readonly" />
<n:panelGrid columns="3">
<c:forEach var="chamadas" items="${home.chamadas}" varStatus="status">
<t:property name="chamadas[${status.index}].tipochamada.idtipochamada" mode="input" type="hidden"/>
<n:panel ><a style="font-size:9pt;font-weight:bold">${chamadas.tipochamada.tipochamada }:</a></n:panel>
<c:if test="${chamadas.tipochamada.tipoPublicacao eq tipoPublicacao.conteudo}">
<t:property label="conteudo:" name="chamadas[${status.index}].conteudo" mode="input" labelStyle="font-size:9pt;font-weight:bold" selectOnePath="/modulo/crud/Conteudo"/>
</c:if>
<c:if test="${chamadas.tipochamada.tipoPublicacao eq tipoPublicacao.galeria}">
<t:property label="galeria:" name="chamadas[${status.index}].galeria" mode="input" labelStyle="font-size:9pt;font-weight:bold" selectOnePath="/modulo/crud/Galeria"/>
</c:if>
</c:forEach>
</n:panelGrid>
<n:panel colspan="2">
<n:submit action="salvar">salvar</n:submit>
</n:panel>
</n:bean>
</t:tela>
Conteudo:
Code:
package org.neo.exemplo.bean;
import java.io.File;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Transient;
import br.com.linkcom.neo.bean.annotation.DescriptionProperty;
import br.com.linkcom.neo.validation.annotation.MaxLength;
import br.com.linkcom.neo.validation.annotation.Required;
@Entity
@SequenceGenerator(name="conteudo_idconteudo_seq", sequenceName="conteudo_idconteudo_seq")
public class Conteudo {
public static String pathRaiz ="C:\\Desenv\\projetos\\neo\\web\\xml";
private static String pastaXml = "conteudo";
private Long idconteudo;
private String titulo;
private String subtitulo;
private String texto;
private String tituloChamada;
private String textoChamada;
private Date dataCadastro;
private Date dataAlteracao;
private Autor autor;
private Imagem imagem;
private Imagem imagem2;
private Imagem imagemChamada;
private Canal canal;
private Subcanal subcanal;
@JoinColumn(name="idimagem_chamada", referencedColumnName="idimagem")
@ManyToOne(fetch=FetchType.LAZY)
public Imagem getImagemChamada() {
return imagemChamada;
}
@JoinColumn(name="idimagem2", referencedColumnName="idimagem")
@ManyToOne(fetch=FetchType.LAZY)
public Imagem getImagem2() {
return imagem2;
}
@JoinColumn(name="idcanal")
@ManyToOne(fetch=FetchType.LAZY)
@Required
public Canal getCanal() {
return canal;
}
@JoinColumn(name="idsubcanal")
@ManyToOne(fetch=FetchType.LAZY)
public Subcanal getSubcanal() {
return subcanal;
}
@Required
@JoinColumn(name="idautor")
@ManyToOne(fetch=FetchType.LAZY)
public Autor getAutor() {
return autor;
}
@Column(name="dt_alteracao")
public Date getDataAlteracao() {
return dataAlteracao;
}
@Column(name="dt_cadastro")
public Date getDataCadastro() {
return dataCadastro;
}
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="conteudo_idconteudo_seq")
public Long getIdconteudo() {
return idconteudo;
}
@JoinColumn(name="idimagem")
@ManyToOne(fetch=FetchType.LAZY)
public Imagem getImagem() {
return imagem;
}
@MaxLength(50)
public String getSubtitulo() {
return subtitulo;
}
@Required
public String getTexto() {
return texto;
}
@MaxLength(200)
@Required
@Column(name="texto_chamada")
public String getTextoChamada() {
return textoChamada;
}
@Required
@MaxLength(50)
public String getTitulo() {
return titulo;
}
@MaxLength(50)
@DescriptionProperty
@Required
@Column(name="titulo_chamada")
public String getTituloChamada() {
return tituloChamada;
}
@Transient
public String getPathXml(){
String path = pathRaiz;
if (this != null){
path += File.separator + getCanal().getCodigo();
if (getSubcanal() != null)
path += File.separator + getSubcanal().getCodigo();
}
path += File.separator + pastaXml;
return path;
}
@Transient
public String getNameXml(){
return idconteudo + ".xml";
}
@Transient
public String getUrlChamada(){
String url = "";
if (this != null){
url += File.separator + getCanal().getCodigo();
if (getSubcanal() != null)
url += File.separator + getSubcanal().getCodigo();
}
url += File.separator + "conteudo.jsp?xml=" + pastaXml + File.separator + getNameXml();
return url;
}
@Transient
public String getUltimoCanal(){
if (getSubcanal() != null)
return getSubcanal().getSubcanal();
else
return getCanal().getCanal();
}
public void setAutor(Autor autor) {
this.autor = autor;
}
public void setDataAlteracao(Date dataAlteracao) {
this.dataAlteracao = dataAlteracao;
}
public void setDataCadastro(Date dataCadastro) {
this.dataCadastro = dataCadastro;
}
public void setIdconteudo(Long idconteudo) {
this.idconteudo = idconteudo;
}
public void setImagem(Imagem imagem) {
this.imagem = imagem;
}
public void setSubtitulo(String subtitulo) {
this.subtitulo = subtitulo;
}
public void setTexto(String texto) {
this.texto = texto;
}
public void setTextoChamada(String textoChamada) {
this.textoChamada = textoChamada;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public void setTituloChamada(String tituloChamada) {
this.tituloChamada = tituloChamada;
}
public void setCanal(Canal canal) {
this.canal = canal;
}
public void setSubcanal(Subcanal subcanal) {
this.subcanal = subcanal;
}
public void setImagem2(Imagem imagem2) {
this.imagem2 = imagem2;
}
public void setImagemChamada(Imagem imagemChamada) {
this.imagemChamada = imagemChamada;
}
}
Home:
Code:
package org.neo.exemplo.bean;
import java.io.File;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Transient;
import br.com.linkcom.neo.bean.annotation.DescriptionProperty;
import br.com.linkcom.neo.validation.annotation.MaxLength;
import br.com.linkcom.neo.validation.annotation.Required;
@Entity
@SequenceGenerator(name="home_idhome_seq", sequenceName="home_idhome_seq")
public class Home {
//constantes
public static String pathRaiz ="C:\\Desenv\\projetos\\neo\\web\\xml";
public static String EXIBICAO_LISTA_DESC = "lista de chamadas";
public static String EXIBICAO_LISTA_COD = "l";
public static String EXIBICAO_FORMATADA_DESC = "home formatada";
public static String EXIBICAO_FORMATADA_COD = "f";
//atributos
private Long idhome;
private Canal canal;
private Subcanal subcanal;
private Integer numeroChamadas;
private List<Chamada> chamadas;
private String exibicao;
private String titulo;
@MaxLength(50)
@DescriptionProperty
@Required
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
@OneToMany(mappedBy="home")
public List<Chamada> getChamadas() {
return chamadas;
}
@Column(name="numero_chamadas")
public Integer getNumeroChamadas() {
return numeroChamadas;
}
@JoinColumn(name="idcanal")
@ManyToOne(fetch = FetchType.LAZY)
public Canal getCanal() {
return canal;
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator="home_idhome_seq")
public Long getIdhome() {
return idhome;
}
@JoinColumn(name="idsubcanal")
@ManyToOne
public Subcanal getSubcanal() {
return subcanal;
}
@MaxLength(1)
public String getExibicao() {
return exibicao;
}
@Transient
public String getPathXml(){
String path = pathRaiz;
if (this != null){
path += File.separator + getCanal().getCodigo();
if (getSubcanal() != null)
path += File.separator + getSubcanal().getCodigo();
}
return path;
}
public void setCanal(Canal canal) {
this.canal = canal;
}
public void setIdhome(Long idhome) {
this.idhome = idhome;
}
public void setSubcanal(Subcanal subcanal) {
this.subcanal = subcanal;
}
public void setChamadas(List<Chamada> chamadas) {
this.chamadas = chamadas;
}
public void setNumeroChamadas(Integer numeroChamadas) {
this.numeroChamadas = numeroChamadas;
}
public void setExibicao(String exibicao) {
this.exibicao = exibicao;
}
}
Chamada:
Code:
package org.neo.exemplo.bean;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
@Entity
@SequenceGenerator(name="chamada_idchamada_seq", sequenceName="chamada_idchamada_seq")
public class Chamada {
private Long idchamada;
private Conteudo conteudo;
private Galeria galeria;
private Home home;
private Tipochamada tipochamada;
public Chamada(){
}
public Chamada(Home h, Conteudo c, Galeria g, Tipochamada t){
if (h != null)
setHome(h);
if (c != null)
setConteudo(c);
if (g != null)
setGaleria(g);
if (t != null)
setTipochamada(t);
}
@JoinColumn(name="idgaleria",nullable=true)
@ManyToOne()
public Galeria getGaleria() {
return galeria;
}
@JoinColumn(name="idconteudo",nullable=true)
@ManyToOne()
public Conteudo getConteudo() {
return conteudo;
}
@JoinColumn(name="idhome")
@ManyToOne(fetch=FetchType.LAZY)
public Home getHome() {
return home;
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator="chamada_idchamada_seq")
public Long getIdchamada() {
return idchamada;
}
@JoinColumn(name="idtipochamada")
@ManyToOne
public Tipochamada getTipochamada() {
return tipochamada;
}
public void setConteudo(Conteudo conteudo) {
this.conteudo = conteudo;
}
public void setHome(Home home) {
this.home = home;
}
public void setIdchamada(Long idchamada) {
this.idchamada = idchamada;
}
public void setTipochamada(Tipochamada tipochamada) {
this.tipochamada = tipochamada;
}
public void setGaleria(Galeria galeria) {
this.galeria = galeria;
}
}
vou mandar o resto no post seguinte.
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 11/08/2007 12:32:16
|
robmsjr
MultiAction
Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline
|
Continando (se preferir ainda mando por email)
Tipochamada
Code:
package org.neo.exemplo.bean;
import java.util.Map;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Transient;
import br.com.linkcom.neo.bean.annotation.DescriptionProperty;
import br.com.linkcom.neo.validation.annotation.MaxLength;
import br.com.linkcom.neo.validation.annotation.Required;
@Entity
@SequenceGenerator(name="tipochamada_idtipochamada_seq", sequenceName="tipochamada_idtipochamada_seq")
public class Tipochamada {
private Long idtipochamada;
private String tipochamada;
private String codigo;
private String tipoPublicacao;
public Tipochamada(){
}
public Tipochamada(String padrao){
this.codigo = padrao;
this.tipochamada = padrao;
}
@Required
@Column(name="tipopublicacao")
public String getTipoPublicacao() {
return tipoPublicacao;
}
@Transient
public String getTipoPublicacaoDescricao(){
if (this != null)
return TipoPublicacao.getMap().get(tipoPublicacao);
else
return "";
}
@Transient
public Map<String,String> getTipoPublicacaoCombo(){
return TipoPublicacao.getMap();
}
@Required
@MaxLength(40)
public String getCodigo() {
return codigo;
}
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="tipochamada_idtipochamada_seq")
public Long getIdtipochamada() {
return idtipochamada;
}
@DescriptionProperty
@Required
@MaxLength(60)
public String getTipochamada() {
return tipochamada;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public void setIdtipochamada(Long idtipochamada) {
this.idtipochamada = idtipochamada;
}
public void setTipochamada(String tipochamada) {
this.tipochamada = tipochamada;
}
public void setTipoPublicacao(String tipoPublicacao) {
this.tipoPublicacao = tipoPublicacao;
}
}
ConteudoCrud
Code:
package org.neo.exemplo.controller;
import java.sql.Timestamp;
import org.neo.exemplo.bean.Conteudo;
import org.neo.exemplo.service.ConteudoService;
import br.com.linkcom.neo.controller.Controller;
import br.com.linkcom.neo.controller.crud.CrudController;
import br.com.linkcom.neo.core.web.WebRequestContext;
@Controller(path="/modulo/crud/Conteudo")
public class ConteudoCrud extends CrudController<ConteudoFiltro, Conteudo, Conteudo> {
ConteudoService conteudoService;
public ConteudoService getConteudoService() {
return conteudoService;
}
public void setConteudoService(ConteudoService conteudoService) {
this.conteudoService = conteudoService;
}
@Override
protected void salvar(WebRequestContext arg0, Conteudo conteudo) throws Exception {
Timestamp dataAtual = new Timestamp(System.currentTimeMillis());
if (conteudo.getIdconteudo() == null)
conteudo.setDataCadastro(dataAtual);
conteudo.setDataAlteracao(dataAtual);
super.salvar(arg0, conteudo);
conteudoService.geraXml(conteudo);
}
}
ConteudoDAO
Code:
package org.neo.exemplo.dao;
import java.util.List;
import org.neo.exemplo.bean.Conteudo;
import org.neo.exemplo.bean.Home;
import org.neo.exemplo.controller.ConteudoFiltro;
import br.com.linkcom.neo.controller.crud.FiltroListagem;
import br.com.linkcom.neo.persistence.GenericDAO;
import br.com.linkcom.neo.persistence.QueryBuilder;
public class ConteudoDAO extends GenericDAO<Conteudo> {
@Override
public void updateEntradaQuery(QueryBuilder<Conteudo> query) {
query.leftOuterJoinFetch("conteudo.imagem");
}
@Override
public void updateListagemQuery(QueryBuilder<Conteudo> query, FiltroListagem _filtro) {
ConteudoFiltro filtro = (ConteudoFiltro) _filtro;
query.joinFetch("conteudo.canal")
.leftOuterJoinFetch("conteudo.subcanal")
.leftOuterJoinFetch("conteudo.imagem")
.whereLike("conteudo.titulo", filtro.getTitulo())
.where("conteudo.canal = ?", filtro.getCanal())
.where("conteudo.subcanal = ?", filtro.getSubcanal())
.where("conteudo.autor = ?", filtro.getAutor());
}
@Override
public Conteudo load(Conteudo conteudo) {
if (conteudo == null)
return null;
QueryBuilder<Conteudo> query= newQueryBuilder(Conteudo.class)
.from(Conteudo.class)
.joinFetch("conteudo.autor")
.joinFetch("conteudo.canal")
.leftOuterJoinFetch("conteudo.subcanal")
.leftOuterJoinFetch("conteudo.imagem")
.leftOuterJoinFetch("conteudo.imagem.arquivo")
.leftOuterJoinFetch("conteudo.imagem2")
.leftOuterJoinFetch("conteudo.imagem2.arquivo")
.leftOuterJoinFetch("conteudo.imagemChamada")
.leftOuterJoinFetch("conteudo.imagemChamada.arquivo");
return query.entity(conteudo).unique();
}
public Conteudo loadForChamada(Conteudo conteudo) {
if (conteudo == null)
return null;
QueryBuilder<Conteudo> query= newQueryBuilder(Conteudo.class)
.from(Conteudo.class)
.joinFetch("conteudo.canal")
.leftOuterJoinFetch("conteudo.subcanal")
.leftOuterJoinFetch("conteudo.imagemChamada")
.leftOuterJoinFetch("conteudo.imagemChamada.arquivo");
return query.entity(conteudo).unique();
}
public List<Conteudo> listForHome(Home home){
QueryBuilder<Conteudo> query = newQueryBuilder(Conteudo.class)
.from(Conteudo.class)
.joinFetch("conteudo.canal")
.leftOuterJoinFetch("conteudo.subcanal")
.leftOuterJoinFetch("conteudo.imagemChamada")
.leftOuterJoinFetch("conteudo.imagemChamada.arquivo")
.where("conteudo.canal = ?", home.getCanal());
if (home.getSubcanal() != null)
query.where("conteudo.subcanal = ?", home.getSubcanal());
query.orderBy("conteudo.idconteudo desc").setMaxResults(home.getNumeroChamadas());
return query.list();
}
}
conteudoEntrada.jsp
Code:
<%@ taglib prefix="n" uri="neo"%>
<%@ taglib prefix="t" uri="template"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<t:entrada>
<t:janelaEntrada>
<t:tabelaEntrada>
<t:property name="idconteudo"/>
<c:if test="${conteudo.idconteudo != null}">
<t:property name="dataCadastro" readonly="readonly" />
</c:if>
<n:comboReloadGroup useAjax="true">
<t:property name="canal"/>
<t:property name="subcanal"/>
</n:comboReloadGroup>
<t:property name="titulo"/>
<t:property name="subtitulo"/>
<t:property rows="12" cols="60" name="texto"/>
<t:property name="tituloChamada"/>
<t:property name="textoChamada" rows="10" cols="60"/>
<t:property name="autor"/>
<t:property name="imagem" selectOnePath="/modulo/crud/Imagem"/>
<t:property name="imagem2" selectOnePath="/modulo/crud/Imagem"/>
<t:property label="Imagem da Chamada" name="imagemChamada" selectOnePath="/modulo/crud/Imagem"/>
</t:tabelaEntrada>
</t:janelaEntrada>
</t:entrada>
conteudoListagem
Code:
<%@ taglib prefix="n" uri="neo"%>
<%@ taglib prefix="t" uri="template"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<t:listagem>
<t:janelaFiltro>
<t:tabelaFiltro>
<t:property name="titulo"/>
<n:comboReloadGroup useAjax="true">
<t:property name="canal" label="Canal:"/>
<t:property name="subcanal" label="Subcanal:"/>
</n:comboReloadGroup>
<t:property name="autor"/>
</t:tabelaFiltro>
</t:janelaFiltro>
<t:janelaResultados>
<t:tabelaResultados>
<t:property name="idconteudo"/>
<t:property name="titulo"/>
<t:property name="subtitulo"/>
<t:property name="ultimoCanal"/>
</t:tabelaResultados>
</t:janelaResultados>
</t:listagem>
Talvez aqui seja suficiente se vc colocar uns valores no banco para suprir as necessidades da tela... Qualquer coisa me fala, e valeu mesmo pela ajuda...
Só falto isso e o controle de acesso para terminar um projeto que estou fazendo aqui.
abraços
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 12/08/2007 13:23:28
|
rogel.garcia
Xiita
Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline
|
blz robmsjr... talvez eu demore um pouquinho para te dar a resposta.. pq esses dias estao meio turbulentos.. e eu vou ter que analizar muita coisa.. pq esse erro é incomum..
mas eu vou te responder....
[se for possível.. utilize um combo normal por enquanto até eu descobrir o que pode ter dado errado]
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 13/08/2007 09:03:31
|
robmsjr
MultiAction
Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline
|
Valeu,
Estou utilizando o combo comum e tentando encontrar o erro... Se eu achar alguma coisa te digo.
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 15/08/2007 12:40:15
|
rogel.garcia
Xiita
Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline
|
robmsjr, realmente um bug que acontece quando o nome da propriedade tem colchetes.. que é o seu caso.. na próxima versão estará corrigido.. ou vc pode colocar dentro do seu src o arquivo...
/br/com/linkcom/neo/view/InputTag-select_one_button.jsp
com o seguinte código:
Code:
<!-- Valor selecionado ${tag.valueToString} -->
<input type="text" name="${tag.name}_label" id="${tag.id}" onchange="${tag.reloadOnChangeString}" readonly="true" value="${tag.descriptionToString}" ${tag.dynamicAttributesToString}/>
<input type="hidden" name="${tag.name}" value="${tag.valueWithDescriptionToString}" />
<button id="${tag.name}_btn" name="${tag.name}_btn" type="button" onclick="${tag.selectOneButtonOnClick} " style='${tag.selectOneButtonStyle}'>Selecionar</button>
<button id="${tag.name}_btnUnselect" name="${tag.name}_btnUnselect" type="button" onclick="document.getElementsByName('${tag.name}_label')[0].value = ''; document.getElementsByName('${tag.name}')[0].value = '<null>'; document.getElementById('${tag.name}_btn').style.display=''; document.getElementById('${tag.name}_btnUnselect').style.display='none'" style='${tag.selectOneUnselectButtonStyle}'>Limpar</button>
A alteração ocorreu na ultima linha...
onde tinha
Code:
${tag.name}_label.value = ''; ${tag.name}.value = '<null>';
passou a ser
Code:
document.getElementsByName('${tag.name}_label')[0].value = ''; document.getElementsByName('${tag.name}')[0].value = '<null>';
Valew
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 15/08/2007 18:52:31
|
robmsjr
MultiAction
Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline
|
Valeu mesmo. Estarei colocando em pratica amanhã e posto qualquer duvida.
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 16/08/2007 16:09:29
|
robmsjr
MultiAction
Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline
|
Funcionou perfeitamente.
Valeu mesmo.
|
|
 |
|