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
oh ... c'est ça? donc ça ne sert à rien d'autre? Je pensais que le code Java est relativement plus simple. – Renjith
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
ont un sens .... – Renjith