2016-08-19 2 views
0

J'essaie d'étudier 'jsp: useBean' et trouvé que 'jsp: setProperty' et 'jsp: getProperty' sont utilisés en association avec useBean. Mon doute est, pourquoi avons-nous besoin de ces balises d'action quand nous pouvons appeler directement les méthodes setter et getter en utilisant l'id de bean.?différence entre <jsp: setProperty> et définition directe des valeurs

J'ai fait un échantillon pour le tester.

Bean:

package test.usebean.bean; 

public class UseBeanTarget { 

    @Override 
    public String toString() { 
     return "UseBeanTarget [userName=" + userName + ", password=" + password 
       + "]"; 
    } 


    private String userName; 
    private String password; 
    public String getUserName() { 
     return userName; 
    } 
    public void setUserName(String userName) { 
     this.userName = userName; 
    } 
    public String getPassword() { 
     return password; 
    } 
    public void setPassword(String password) { 
     this.password = password; 
    } 


    public String displayName(){ 
     return userName; 
    } 

} 

JSP:

<jsp:useBean id="targetBean" class="test.usebean.bean.UseBeanTarget"></jsp:useBean> 
<jsp:setProperty property="userName" name="targetBean" value="Renjith"/> 
<jsp:setProperty property="password" name="targetBean" value="[email protected]"/> 

<h2> 
Set using setProperty 
<br /> 
<%= targetBean %> 
</h2> 
<hr /> 
<% 
targetBean.setUserName("Renjith_Direct"); 
targetBean.setPassword("ren$1234"); 
%> 
<h2> 
After setting the properties directly 
<br /> 
<%= targetBean.getUserName() %> 
<br /> 
<%= targetBean.getPassword() %> 
</h2> 

Ce que je Mémorable est que les deux le même objectif.

Résultat:

Set using setProperty 

UseBeanTarget [userName=Renjith, [email protected]] 

After setting the properties directly 

Renjith_Direct 
ren$1234 

Répondre

2

Oui, les deux méthodes fonctionnent bien, mais généralement en utilisant le code java dans un fichier JSP est désapprouvée. L'utilisation de balises JSP par opposition à l'utilisation de code Java avec la balise <% %> préserve le format XML du fichier JSP et rend le code plus lisible.

+0

oh ... c'est ça? donc ça ne sert à rien d'autre? Je pensais que le code Java est relativement plus simple. – Renjith

+0

Eh bien, fondamentalement c'est pourquoi. Les scriptlets peuvent se sentir plus simples quand il s'agit de petits codes comme celui-ci mais il serait fastidieux de gérer un grand projet avec beaucoup de scriptlets. Les fichiers JSP ne doivent être utilisés que pour la "présentation" et la logique doit figurer dans le fichier de classe de servlet. L'utilisation de scriptlets de doublure pourrait être considérée comme acceptable, mais essayez d'utiliser des balises JSP chaque fois que cela est possible. Plus de réponse descriptive: http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files. Assurez-vous de cocher ma réponse si c'était utile :) – sope

+0

ont un sens .... – Renjith