Autor |
Mensagem |
|
Poste aqui o seu itemLista.. o controller e o jsp como estão nesse momento..
|
 |
|
pode ser... aí mesmo...
mas dê preferencia para extender o entrada ao invés do método doEntrada
|
 |
|
Esse tipo de generics
public class PaiCrud<FILTRO extends PaiFiltro, FORM extends Pai, BEAN extends Pai> extends CrudController<FILTRO,FORM,BEAN
o CrudController realmente nao aceita nao...
Ele não foi implementado.. porque é possível utilizar as classes de outras formas para nao cair nessa situacao.. e a solução para esse problema é muito complexa....
|
 |
|
tem sim...
vou montar um exemplo depois e te mando....
|
 |
|
acho que pode ser o seguinte:
query.where("estrutura.area = ?", filtro.getArea())
essa linha dará pau.. caso nao tenha sido selecionada a area pelo seguinte...
o projeto da area.. se estiver selecionado forcará a criacao de area.. que nao possui id..
ou seja.. vc terá uma área com projeto mas a area nao tem id...
esse problema seria resolvido com o exemplo acima...
Isso é uma limitacao dificil de ser resolvida.. ela acontece sempre que dentro de um combo reload.. o primeiro combo é selecionado e o segundo nao.. e o segundo nao é obrigatorio
[ela é resolvida.. fazendo-se a modificacao acima]
|
 |
|
Nao sei exatamente o que é...
mas experimente fazer o seguinte:
Code:
public class EstruturaFiltro extends FiltroListagem {
private Area area;
private Projeto projeto
...
getters e setters
...
}
e no jsp
Code:
<n:comboReloadGroup useAjax="true">
<t:property name="projeto" label="Projeto" ONCHANGE="getBean(this)" />
<t:property name="area" label="Area" ONCHANGE="getBean(this)" />
</n:comboReloadGroup>
Terá o mesmo efeito...
Coloque aqui o erro que deu.. pra gente saber se é algum bug ou limitacao....
|
 |
|
voce pode colocar o valor no próprio bean..
exemplo
class Bean {
Date data = new Date();//o valor padrao será a data atual
}
vc também pode setar o valor no controller antes de ir para a tela...
|
 |
|
Buscar via reflection seria interessante... O tipo no Model seria object mesmo..
Quando vc manda o parametro modelo=x.y.Z[id=3] o neo colocará um objeto tipo x.y.z se for modelo=x.y.W[id=8] o neo colocará... W
Você pode criar uma annotation @SecondDescription...
Achar essa propriedade via reflection... alterar os templates e criar um controller genérico...
Aí bastará anotar a propriedade com @SecondDescription que a funcionalidade que vc criou seria ativada...
|
 |
|
Ao invés de fazer isso
Code:
(Projeto) ServletRequestDataBinderNeo.translateObjectValue(null, request.getParameter("projeto"), null);
é melhor criar um bean
Code:
class Model {
Object modelo;
..getter e settter..
}
e no controller fazer
Code:
public void getProjeto(WebRequestContext req, Model model) {
Projeto projeto = (Projeto) model.getModelo();
}
O nome do parâmetro do ajax ao invés de ser projeto ou area.. deverá ser modelo...
troque
Code:
sendRequest('${pageContext.request.contextPath}/adm/AjaxCombo?'+beanName+'='+o
por
Code:
sendRequest('${pageContext.request.contextPath}/adm/AjaxCombo?modelo='+o
|
 |
|
Essa funcionalidade de mostrar a descrição do bean é comum na sua aplicação?
No label dos combos é mostrado o q?
Porque a descrição já não é mostrada diretamente no combo?
[A propriedade anotada com @DescriptionProperty será utilizada como label para os options do combo]
|
 |
|
É isso mesmo Guilherme.. o que tem como vc fazer para melhorar é tornar o algorítmo genérico...
Ao invés de ter uma funçao para cada bean... vc pode ter uma única funçao parametrizável.. que retorna a descriçao de acordo com o bean que foi passado como parâmetro....
|
 |
|
Entendi...
Não tem nenhum recurso automático do NEO para fazer isso.. vc terá que fazer utilizando os recursos normais do NEO...
Vc pode fazer assim:
no seu jsp coloque
<n:ajax functionName="executarAjax(codigo)" parameters="javascript:'codigo='+codigo" action="..." .... />
<n:property name="x" onchange="executarAjax(this.value)"/>
No servidor crie uma action que carregue o bean e faça println de um script mais ou menos assim:
out.println("document.getElementById('id do div que tera a msg').innerHTML = "+descricao);
Ficou um pouco resumido demais meu exemplo.. se não tiver entendendo me fala que eu faço um exemplo mais detalhado...
|
 |
|
Experimente trocar os <br> por <n:panel>& nbsp;</n:panel>
|
 |
|
Bem.. sempre que tiver dentro de um panelGrid... vc deve utilizar panels para colocar o HTML dentro do panel
Ex:
<n:panelGrid columns="2">
<n:panel>
Aqui! Estou dentro de um TD (correto)
</n:panel>
Aqui estou fora de um TD (errado)
</n:panel>
Um panelGrid. só aceita dentro deles... panel.. Se colocar HTML é como se tentasse colocar código entre um TR e um TD. Cada n:panel representa um TD do HTML. Os TRs são colocados de acordo com o número de colunas especificado no panelGrid.. se vc tem um panelGrid com 2 columns e 4 panels dentro.. vc terá 2 linhas com 2 tds cada..
Veja uma explicaçao mais detalhada na documentaçao..
No seu exemplo os <BR> estão em local inapropriado...
O estilo no tabelaEntrada é colocado assim:
font-weight: bold, font-weight:normal
Isso significa que a primeira TD será negrito a segunda nao.. a terceira negrito .. a quarta nao....
Vc terá que alterar o estilo para o seu JSP ou alterar o template tabelaEntrada...
Tente utilizar os atributos columnStyleClasses ou columnStyles para configurar o estilo das colunas
Se o tabelaEntrada não estiver atendendo e vc não puder alterá-lo.. coloque um panelGrid dentro do tabelaEntrada para configurar as propriedades
Vc também pode substituir o tabelaEntrada por um panelGrid se desejar..
O tabelaEntrada é na verdade um panelGrid com algumas propriedades configuradas por padrão e um t:propertyConfig
|
 |
|
Faz o seguinte...
no seu controller
Code:
Map<String, String> pessoas = new LinkedHashMap<String, String>();
pessoas.put("F", "Física");
pessoas.put("J", "Jurídica");
request.setAttribute("mapaPessoas", pessoas);
no jsp
Code:
<t:property name="tipoPessoa" renderAs="doubleline" itens="${mapaPessoas}"/>
|
 |
|