Ola amigos, estou iniciando hoje minha programacao em web ( ide netbeans + hibernate + postgre ).
Bom como todo mundo, tenho que aprender o basico.
A minha duvida do momento é, quando eu crio uma pagina jsp exitem 3 funcoes da pagina : projeto, jsp, java.
O projeto pelo que entendi é a parte grafica, e vc arrastando os componentes ele vai criando o html sozinho ( jsp ).
Agora o botão java serve para que ? programar os eventos ?
Por exemplo, se eu quiser programar o evento “ao sair de foco” de uma caixa de text (nao achei esse evento pra programar ), eu programo ele no botao JAVA ou dentro do jsp ?
Eu vi um codigo de um colega que ele programa dentro da parte JSP:
Page bean that corresponds to a similarly named JSP page. This
class contains component definitions (and initialization code) for
all components that you have defined on this page, as well as
lifecycle methods and event handlers where you may add behavior
to respond to incoming events.
@version Page1.java
@version Created on 12/08/2010, 10:03:02
@author danilo
*/
public class Login extends AbstractPageBean {
//
/**
* <p>Automatically managed component initialization. <strong>WARNING:</strong>
* This method is automatically generated, so any user-specified code inserted
* here is subject to being replaced.</p>
*/
private void _init() throws Exception {
}
// </editor-fold>
/**
* <p>Construct a new Page bean instance.</p>
*/
public Login() {
}
/**
* <p>Callback method that is called whenever a page is navigated to,
* either directly via a URL, or indirectly via page navigation.
* Customize this method to acquire resources that will be needed
* for event handlers and lifecycle methods, whether or not this
* page is performing post back processing.</p>
*
* <p>Note that, if the current request is a postback, the property
* values of the components do <strong>not</strong> represent any
* values submitted with this request. Instead, they represent the
* property values that were saved for this view when it was rendered.</p>
*/
@Override
public void init() {
// Perform initializations inherited from our superclass
super.init();
// Perform application initialization that must complete
// *before* managed components are initialized
// TODO - add your own initialiation code here
// <editor-fold defaultstate="collapsed" desc="Managed Component Initialization">
// Initialize automatically managed components
// *Note* - this logic should NOT be modified
try {
_init();
} catch (Exception e) {
log("Page1 Initialization Failure", e);
throw e instanceof FacesException ? (FacesException) e: new FacesException(e);
}
// </editor-fold>
// Perform application initialization that must complete
// *after* managed components are initialized
// TODO - add your own initialization code here
}
/**
* <p>Callback method that is called after the component tree has been
* restored, but before any event processing takes place. This method
* will <strong>only</strong> be called on a postback request that
* is processing a form submit. Customize this method to allocate
* resources that will be required in your event handlers.</p>
*/
@Override
public void preprocess() {
}
/**
* <p>Callback method that is called just before rendering takes place.
* This method will <strong>only</strong> be called for the page that
* will actually be rendered (and not, for example, on a page that
* handled a postback and then navigated to a different page). Customize
* this method to allocate resources that will be required for rendering
* this page.</p>
*/
@Override
public void prerender() {
}
/**
* <p>Callback method that is called after rendering is completed for
* this request, if <code>init()</code> was called (regardless of whether
* or not this was the page that was actually rendered). Customize this
* method to release resources acquired in the <code>init()</code>,
* <code>preprocess()</code>, or <code>prerender()</code> methods (or
* acquired during execution of an event handler).</p>
*/
@Override
public void destroy() {
}
/**
* <p>Retornar uma referência para o Bean de dados limitados.</p>
*
* @retorna uma referência para o bean de dados limitados
*/
protected RequestBean1 getRequestBean1() {
return (RequestBean1) getBean("RequestBean1");
}
/**
* <p>Retornar uma referência para o Bean de dados limitados.</p>
*
* @retorna uma referência para o bean de dados limitados
*/
protected ApplicationBean1 getApplicationBean1() {
return (ApplicationBean1) getBean("ApplicationBean1");
}
/**
* <p>Retornar uma referência para o Bean de dados limitados.</p>
*
* @retorna uma referência para o bean de dados limitados
*/
protected SessionBean1 getSessionBean1() {
return (SessionBean1) getBean("SessionBean1");
}
public String button1_action() {
return null;
}
public void textField1_validate(FacesContext context, UIComponent component, Object value) {
}
public void textField1_processValueChange(ValueChangeEvent event) {
}
Cara, não tente sair desenvolvendo assim. Existem muuitos conceitos por trás de uma aplicação web. Com esses conceitos vc saberia muito bem o q fazer e como fazer.
Primeiro. Vc deve estar usando o Java Server Faces. Onde existe uma página, e uma classe, q é chamada de vários nomes, mas vou chamá-la de ManagedBean.
Segundo. Vc precisa saber diferenciar o q deve ser feito em HTML e o q deve ser feito em java. É aí q as coisas se tornam mais fáceis de se entender.
Por último. Não use o netbeans. Ele é mais fácil qndo se está começando, por apresentar funcionalidades como esta do botão jsp e java, fazendo com q o desenvolvedor se torne burro e acaba não sabendo como as coisas funcionam. Mais ou menos igual a maioria dos desenvolvedores .Net !!
Penso o seguinte:
se qr aprender a programar não utilize a interface grafica da IDE ( no seu caso o netBeans) pq ele vai gerar tanto codigo que vc não vai intender oque esta sendo gerado, tente fazer tudo na mão mesmo, pois assim vc saberá oque cada coisa irá fazer, e não vai ter q ficar adivinhando nada.
O problema pessoal que eu não vou ter tempo mesmo de fazer tudo na mão, apesar de eu querer.
A coisa aqui ta complicada, mas em relacao a duvida eu vou ter que ir apanhando ao longo da jornada mesmo, pelo menos irei apresentando resultados.
eu ja conheco O.O , hibernate ( ja consegui fazer funcionar ) … minha duvida mesmo é como programo o evento “ao mover mouse” ou qualquer outro evento… não é na parte “java” né ?
[quote=Zabeu]O problema pessoal que eu não vou ter tempo mesmo de fazer tudo na mão, apesar de eu querer.
A coisa aqui ta complicada, mas em relacao a duvida eu vou ter que ir apanhando ao longo da jornada mesmo, pelo menos irei apresentando resultados.
eu ja conheco O.O , hibernate ( ja consegui fazer funcionar ) … minha duvida mesmo é como programo o evento “ao mover mouse” ou qualquer outro evento… não é na parte “java” né ?
att[/quote]
Não, não é no java isso.
Mas se vc qr aprender tem q começar a fazer na mão, a IDE te ajuda, mas gera muito lixo, e codigo complicado de se entender… ai vc vai apanhar muito, mesmo sendo muito complicado pela falta de tempo que nem vc disse, ainda acho q seria a melhor escolha…
OBS. opinião minha neh, cada um pensa de um jeito
La voce consegue colocar os objetos ( da paleta do netbeans ) como button, textfield etc…
Voce vai colocando e na aba jsf o netbeans vai implementando o código…
Ai minha duvida
Por exemplo…programar o click do botão, eu programo no “eventos - action” ou “java script - onClick”.
Se for no jsp ( onClick ) , eu faço uma programacao no java e faço uma vinculação do mesmo na parte de Jsf ?
Ou por exemplo…se eu quiser que o botão execute uma consulta no banco de dados quando eu passar o mouse em cima dele “onMouseMove” oque eu faço? Como eu disse ali em cima ? vou no codigo java e faço a programacao, dps vou no jsf e vinculo os 2 ?
Meu cola disse que, se por exemplo eu quisesse que quando o usuario apertasse 2x o botão do mouse ele salvesse um certo registro no bd, isto é, evento “DblClick”, oque eu devo fazer é programar na parte “JAVA” atrazes de orientação a objetos e vinculas isto no JSP, isto é, no evento “DBLCLICK”, e essa vinculação é colocada no JSP.
Ele esta certo?
Vamos supor que eu tenho esta classe :
import javax.swing.JOptionPane;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author danilo
*/
public class classex {
public void teste_evento(){
JOptionPane.showMessageDialog(null, "teste");
}
}
O que eu quero é que ao passar o mouse em cima do botão, ele vá ate essa classe e execute o teste_evento().
existem alguns conceitos importantes para desenvolvimento web, tipo MVC.
penso q agora q seria interessante gastar algumas horas/dias para apreender ao máximo a parte conceitual de como por onde começar.
[quote]O que eu quero é que ao passar o mouse em cima do botão, ele vá ate essa classe e execute o teste_evento().
Como colocar isto no OnMouseMove?[/quote]
acho q isso seria na view, através de um javascritp/ajax e não através de um swing na aplicação web.
eu começaria(e comecei) vendo um pouco de conceito antes de tudo e depois sim partir para a longa jornada.
Por mais que o tempo seja curto vale a pena entender como as coisas funcionam, aonde as peças se encaixam e como as engrenagens giram.(eita filosofia barata de madrugada hehehe)
eu também recomendaria você a procurar um meio confiável e didático para absorver esses conceitos, no MEU caso as apostilas da caelum foram combinação fatal! hehe
Ele quiz dizer que isso é no jsf (o framework que vc esta utilizando) e não swing que seriam telas feitas no java para desenvolver para desk, creio que para vc seria muito mais util começar sem o uso de framework, por ser mais simples, e facil de entendimento. depois vc parte para o uso de um framework que vc goste. o uso de framework no inicio da sua aprendizagem creio que só vai te atrapalhar, pos faz uso de alguns conceitos que vc não detem ainda.
e vc pediu exemplo, mas se alguem te der este exemplo, vc vai agarrar no proximo, pos em minha opinião: vc deve conhecer o simples primeiro, para depois partir para uso de frameworks de desenvolvimento rapido, pois ai vc saberá realmente oque quer fazer,e já terá uma noção de como fazer.
Existem várias maneiras de se fazer a mesma coisa, ai cabe vc entender a situação + conceito e desenvolver uma solução.
Pelo que eu entendi do que vc quer/precisa fazer seria algo parecido:
<html>
<body>
<input type="button" onmouseover="alert('Esta é uma caixa de diálogo ALERT do JavaScript!')">
</body>
</html>
agora sei la, deve ter mts outras maneiras melhores de se fazer isso…depende mt do q vc precisa.