| Author |
Message |
|
|
amigos me ajudem, to a horas tentando buscar os dados do meu jsp e não consegui ver o que falta, so vem null e se colocar algum do tipo int vem com -1, algum filho de Deus me diga o que estou fazendo de errado.....
JSP
Code:
<%@ taglib uri="/WEB-INF/lib/mentawai.jar" prefix="mtw" %>
<mtw:requiresAuthentication />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<mtw:inputMaskConfig />
<mtw:formSkinConfig skin="xClear"/>
<mtw:tabPanelConfig />
</head>
<body>
<mtw:hasError>
<font class="error"><mtw:error /></font>
</br>
</mtw:hasError>
<DIV style="width:650px;padding-top:5%">
<mtw:formSkin name="frm" method="POST"
action="ClienteAction.show.mtw"
caption="Cadastro de Clientes"
btnCloseOnclick="window.close()"
btnCloseTitle="fechar browser"
>
<mtw:input type="hidden" name="id" />
<DIV style="width: 550px; heigth: auto;">
<DIV style="width: 40px; float: left; margin: 2px;">
<LABEL style="width:40px;" class="mtwLabel">Filial</LABEL>
</DIV>
<DIV style="width:30px; float: left; margin: 2px;">
<mtw:input name="filial" maxlength="2" size="1" style="border:1px solid black"/>
</DIV>
<DIV style="width: 60px; float: left; margin: 2px;">
<LABEL style="width:50px;" class="mtwLabel">Empresa</LABEL>
</DIV>
<DIV style="width:30px; float: left; margin: 2px;">
<mtw:input name="empresa" maxlength="2" size="1" style="border:1px solid black"/>
</DIV>
<DIV style="width: 48px; float: left; margin: 2px;">
<LABEL style="width:50px;" class="mtwLabel">Codigo</LABEL>
</DIV>
<DIV style="width:80px; float: left; margin: 2px;">
<mtw:input name="codigo" maxlength="8" size="10" style="border:1px solid black"/>
</DIV>
<DIV style="width: 30px; float: left; margin: 2px;">
<LABEL style="width:30px;" class="mtwLabel">CPF</LABEL>
</DIV>
<DIV style="width:50px; float: left; margin: 2px;">
<mtw:inputMask maskDefined="CPF" name="cgc" klassStyle="border:1px solid black" title="Informe o cpf" size="15"/>
</DIV>
minha Action
Code:
public String show() throws Exception {
String empresa = input.getStringValue("empresa");
String codigo = input.getStringValue("codigo");
String cgccpf = input.getStringValue("cgc");
String nome = input.getStringValue("razao_social");
Cliente c = new Cliente();
c.setEmpresa(empresa);
c.setCodigo(codigo);
c.setCgc(cgccpf);
c.setRazao_Social(nome);
Cliente cliente = clienteDAO.findByEq(c);
output.setValue("cliente",cliente);
return SUCCESS;
}
Valeu
|
 |
|
|
velo wrote:
remover
você se refere ao topico...... pode sim blz .
|
 |
|
|
resolvi o problema substituindo o scope do IocFilter, no loadAction do ApplicationManager
antes
Code:
public void loadActions() {
filter(new AuthenticationFilter());
on(LOGIN, redir("/index.jsp"));
List<Filter> common = new ArrayList<Filter>();
common.add(new ValidatorFilter());
common.add(new ConverterFilter());
common.add(new IoCFilter(usuarioDAO, "usuarioDAO", SESSION));
depois
Code:
public void loadActions() {
filter(new AuthenticationFilter());
on(LOGIN, redir("/index.jsp"));
List<Filter> common = new ArrayList<Filter>();
common.add(new ValidatorFilter());
common.add(new ConverterFilter());
common.add(new IoCFilter(usuarioDAO, "usuarioDAO", REQUEST));
|
 |
|
|
To com um problema estranho na minha aplicação, no momento do login...., to utilizando extends BaseLoginAction implements Validatable ... quando digito usuário e senha correto, nenhum problema acontece, mas se por ventura errar a senha, e o retorno da action for ERROR , ai não consigo me conectar ao mysql. Eu uso hibernate anot. e no session.beginTransaction(); falha, fica dizendo que a session esta fechada, ai sou obrigado a reiniciar o tomcat por que não consigo mais acessar o banco: minha plataforma linux ubuntu. alguma dica???
Valeu.
LoginAction
Code:
public String execute() throws Exception {
String logname = input.getStringValue("username");
String senha = input.getStringValue("password");
Usuario anonimo = new Usuario();
anonimo.setLogname(logname);
Usuario usuario = usuarioDAO.findByEq(anonimo);
if (usuario != null &&
usuario.getLogname().equals(logname) &&
usuario.getSenha().equals(criptografa(senha)) ){
etc.......
return SUCCESS;
}
else {
addError("Login ou senha incorretos!");
return ERROR;
}
}
Applicationmanager
Code:
public class ApplicationManager extends org.mentawai.core.ApplicationManager{
Component aplicacaoDAO;
Component usuarioDAO;
Component menuDAO;
Component tituloMenuDAO;
Component filialDAO;
SessionFactory sessionFactory;
DBListData dbListData;
ListData listData;
public void init(Context application) {
this.aplicacaoDAO = new DefaultComponent(HibernateAplicacaoDAO.class);
this.usuarioDAO = new DefaultComponent(HibernateUsuarioDAO.class);
this.menuDAO = new DefaultComponent(HibernateMenuDAO.class);
this.tituloMenuDAO = new DefaultComponent(HibernateTituloMenuDAO.class);
this.filialDAO = new DefaultComponent(HibernateFilialDAO.class);
this.sessionFactory = new AnnotationConfiguration()
.addAnnotatedClass(Menu.class)
.addAnnotatedClass(TituloMenu.class)
.addAnnotatedClass(Usuario.class)
.addAnnotatedClass(Aplicacao.class)
.addAnnotatedClass(Filial.class)
.configure()
.buildSessionFactory();
}
public void loadActions() {
filter(new AuthenticationFilter());
on(LOGIN, redir("/index.jsp"));
List<Filter> common = new ArrayList<Filter>();
common.add(new ValidatorFilter());
common.add(new ConverterFilter());
common.add(new IoCFilter(aplicacaoDAO, "aplicacaoDAO", REQUEST));
common.add(new IoCFilter(usuarioDAO, "usuarioDAO", SESSION));
common.add(new IoCFilter(tituloMenuDAO, "tituloMenuDAO", REQUEST));
common.add(new IoCFilter(menuDAO, "menuDAO", REQUEST));
common.add(new IoCFilter(filialDAO,"filialDAO",REQUEST));
common.add(new HibernateFilter(sessionFactory));
common.add(new DIFilter());
common.add(new InjectionFilter());
di("session",Session.class);
di("aplicacaoDAO",BaseImplDAO.class);
di("usuarioDAO",BaseImplDAO.class);
di("tituloMenuDAO",BaseImplDAO.class);
di("menuDAO",BaseImplDAO.class);
di("filialDAO",BaseImplDAO.class);
action("/LoginAction",LoginAction.class)
.on(SUCCESS,fwd("WEB-INF/jsp/template/body.page"))
.on(ERROR,fwd("/index.jsp"))
.addFilter(common);
action("/LogoutAction", LogoutAction.class);
on(SUCCESS, redir("/index.jsp"));
}
BaseDAO
Code:
public interface BaseDAO<T, PK extends Serializable> {
public abstract Class<T> getObjClass();
public abstract T findByEq(final T example);
}
BaseImpDAO
Code:
public T findByEq(final T value) {
Transaction tx = null;
try {
tx = session.beginTransaction();
final Criteria criteria = session.createCriteria(this.objClass);
criteria.add(Example.create(value).enableLike(MatchMode.ANYWHERE).ignoreCase());
final T result = (T) criteria.uniqueResult();
tx.commit();
return result;
} catch (final HibernateException e) {
if (tx != null && tx.isActive())
tx.rollback();
logger.error(e.getMessage(),e.getCause());
}
return null;
}
|
 |
|
|
Usa o link abaixo como referencia, uma especie de roteiro, substituia o framework MVC que tem pelo Menta e todos os agregados q puder, o menta tem integração com Hibernate/Ajax, faz tudo isso ai belezinha e com mais simplicidade ainda, se tu não quiser usar o hibernate tem a opção do mentabeans, ou seja barba cabelo e bigode. e seja feliz
http://www.caelum.com.br/caelum/apostila/caelum-java-web-fj28.pdf
|
 |
|
|
|
será q isso não é permissão.
|
 |
|
|
bom ao meu ver não vejo problema em salvar, se vc quer fazer distinção entre PF e PJ, poderia definir um campo flag na tabela... "F" ou "J" , e quem quer q seja teria q informar isso na view, de qualquer forma uma boa opção seria a validação dos digitos, pra mim obrigatória, tanto do CPF como CNPJ, afinal vc não querer gravar no seu banco dados inconsistentes, e ai vc já poderia ter uma definição pela quantidade de números informados, poderia até usar um case.
flw!!!
|
 |
|
|
bom já q ninguém nunca te respondeu, e isso pode não ser especifico do menta, deixa eu perguntar....., qual o problema de se fazer o if????? tem tb o numero.... CPF é 11, CNPJ é 14, já pensou num flag "F"isico e "J"uridico, oq vc queria, alguma forma de se definir isso em tempo de execução, uma especie de reflection ??? desculpe se estiver falando bobeira...
flw!!
|
 |
|
|
Que bom, é realmente simples.
YkyMatt wrote:
Pra ativar esse provedor de conseqüências consegui fazer de duas maneiras:
Como o Lupos falou que faz:
mas justiça seja feita, foi Sergio "saoj" que me ajudou a fazer assim.O merito é dele.
|
 |
|
|
Eu to usando CoC e template. Se eu não estou enganado acho q vc tá querendo o mesmo , pra mim tá funcionando legal, dá uma sacada no codigo.....
coloca Controller.setConsequenceProvider(new ConsequenceProvider()
ApplicationManager
Code:
public void init(Context application) {
Controller.setConsequenceProvider(new ConsequenceProvider() {
public Consequence getConsequence(String action, Class<? extends Object> actionClass, String result, String innerAction) {
StringBuffer sb = new StringBuffer(128);
sb.append("/").append("WEB-INF/jsp/").append("/");
sb.append(result).append(".page");
return new Forward(sb.toString());
}
} );
/////// etc ....
}
public void loadActions() {
ActionConfig ac = new ActionConfig("/MenuAction",MenuAction.class);
ac.addConsequence(SUCCESS,fwd("WEB-INF/jsp/template/body.page"));
ac.addConsequence(ERROR,fwd("WEB-INF/jsp/template/sempag.page"));
ac.addFilter(common);
addActionConfig(ac);
}
Sergio senão substitui jsp por page o template não funciona. , essa mistura ficou muito flexível, agora q entendo não vejo complicação alguma. tá muito simples. como é de praxe no menta
valeu.
|
 |
|
|
Cara só para ter certeza vc já leu isso aqui ... http://www.mentaframework.org/authorization.jsp
falou.
|
 |
|
|
Ice... legal tb seria... nesse F.A.Q demonstrar a integração com o Mentabeans, penso que poderia ser ainda mais proveitoso para o framework, pensando de uma maneira geral so um palpite.
|
 |
|
|
Completando... até onde eu sei no menta se vc fizer um redirect os dados do output da action são zerados/limpo/perdido, coisa q não acontece com o forward.
se estiver errado alguém me corrija.
Falou.
|
 |
|
|
nesse tópico http://www.guj.com.br/posts/list/22446.java tem essa diferença, mas acho q o melhor é vc postar coisa mais especifica do Mentawai.... e de Java/Web neste último endereço q te passei, suas dúvidas serão respondidas com maior rapidez
Valeu.
|
 |
|
|
Cara não sei nem como agradecer ... por esse F.A.Q , se encaixa perfeito pra mim, valeu mesmo
|
 |
|
|
|
|