2014-06-20 1 views
3

Je le code suivant:demande Set attribut à l'aide JSTL

<bean:define id="hasDocuments" name="BudgetSimulationDetailForm" property="hasDocuments" type="java.lang.Boolean"/> 
<% 
    request.setAttribute("enablebtnRelatedDocs", "true"); 
    request.setAttribute("hasDocuments", String.valueOf(hasDocuments)); 
%> 

Je veux enlever le scriptlet, j'ai essayé d'utiliser c: set avec différents champs d'application, mais cela n'a pas fonctionné. Est-il possible de définir un attribut de requête à l'aide de balises JSTL?

J'ai essayé et n'a pas fonctionné:

<c:set name="enablebtnRelatedDocs" value="true" scope="request"/> 

et aussi

<c:set name="enablebtnRelatedDocs" value="${true}" scope="request"/> 

Ensuite il y a un include:

<jsp:include page="/gema/jsp/includes/detail/top_Detail.jsp"> 
    <jsp:param name="title_key" value="${title}" /> 
    <jsp:param name="title_bundle" value="buc" />   
    <jsp:param name="standard_buttons_include" value="true" /> 
    <jsp:param name="typeId" value="53555" /> 
    <jsp:param name="detail" value="budget" /> 
</jsp:include> 

A l'intérieur du inclus JSP l'attribut demande n'est pas visible, apparemment.

+1

'c: set' devrait fonctionner correctement. Montre-nous ce que tu as essayé. –

+0

Et qu'est-ce que ça fait? Pourquoi pensez-vous que cela ne fonctionne pas? –

+0

A l'intérieur top_Detail.jsp il y a un scriplet qui lit request.getParameter et request.getAttribute et tous deux renvoient null. –

Répondre

9

Sons bons, vous voulez utiliser JSP Standard Tag Library au lieu de Scriplet. Oui, il est possible d'utiliser c:set. En savoir plus sur Core Tag Library

<c:set var="enablebtnRelatedDocs" value="${true}" scope="request"/> 

<c:out value="${requestScope.enablebtnRelatedDocs }"/> 

Par défaut c:set définir un attribut dans la page contexte. vous pouvez le définir dans n'importe quelle portée.

+0

J'ai essayé avec value = "$ {true}" au lieu de value = "true" avec le même résultat. –

+0

comment y accéder à l'intérieur de la page JSP incluse? – Braj

+0

Fonctionne également avec ''. Essayez '' Accédez comme je le suggère dans mon post. Ou vous pouvez également le définir dans la portée 'session'. – Braj

3

Par défaut, la fonction de bibliothèque de base JSTL "set" accepte les attributs suivants:

JSTL Corps central propriété (crédits à tutorialspoint.com): valeur, cible , propriété, var, portée

Vous devriez utiliser "var =" au lieu de "name =". J'espère que cela t'aides!

Bonne codification! 1: enter image description here