2015-06-16 2 views
0

Я пытаюсь передать объект сеанса из sessionConstant.java в мой файл COMP.jsp ....объект доступа с использованием пользовательских тегов в JSP

sessionConstants.java

public class SessionConstants { 


    public static final String COMP_TYPE_GRID_JSON = "companyTypeGridModelObj"; 



} 

и в Jsp файле я есть A * .js сценарий .......

<script type="text/javascript" charset="utf-8"> 
    var aa = "${cons.COMP_TYPE_GRID_JSON}"; 
    var bb = "${sessionScope.companyTypeGridModelObj}"; 

    var jsonModal = <myComp:JSON object = "${bb}" /> 


</script> 

Q1. как я прохожу значение ввар аа вместо 'companyTypeGridModelObj' в sessionScope объекта, определенного в вар бб ...

Q2. как я прохожу уага бба в моей JSTL

пожалуйста, помогите

для кода в Java, где передается этот атрибут

NgGridModelConvertor ngGridModelConvertor = new NgGridModelConvertor(); 
NgGridModel ngGridModel = ngGridModelConvertor.getNgModelData1(columnModeList, dataMapList, rtlOrientation); 
getSession().put(SessionConstants.COMP_TYPE_GRID_JSON, ngGridModel); 
+0

Можете ли вы показать код, где вы на самом деле писать атрибуты в сессии? Кроме того, поскольку JSTL оценивается перед Javascript, вы должны иметь возможность просматривать исходный код и видеть ваш оцененный JSTL в Javascript. –

+0

Я не понимаю Q1, можете ли вы перефразировать, пожалуйста? – RPresle

+0

@RPresle: Q1 был перефразирован. –

ответ

0

Вы можете обратиться к this thread, которые могут ответить на ваши проблемы ,

Сначала вам нужно вставить значение внутри области сеанса. Затем вы можете получить доступ к своим данным из вашего JSP-файла. Поскольку вы используете тег, я полагаю, вы не используете отдельный файл js. Если вы используете отдельный файл, вам придется использовать другой способ передачи ваших данных, как Ajax-вызов или скрытый ввод.

Servlet:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    HttpSession session = request.getSession(); 
    session.setAttribute("Questions", getQuestion()); 
} 

JSP:

<c:out value="${sessionScope.Questions.questionPaperID}" /> 

ИЛИ иметь значение с именем:

<c:set scope="session" var="varName" value="${expression}" /> 
<c:out value="${varName}" /> 

для вашей ситуации:

<c:set scope="session" var="bb" value="${sessionScope.companyTypeGridModelObj}" /> 
<p> My value is : ${bb}</p> 

EDIT: Использование TagLib

Here У вас есть официальная документация по TagLib. Вы должны прочитать это, это, вероятно, даст вам больше информации.

Для вашей проблемы: в вашем файле тега вы объявляете тег с атрибутами. Таким образом, когда вы вызываете этот тег, вы можете передать свое значение $ {bb} в тег.

В my tag file (ссылка на мой персональный код, может быть, он может быть улучшен)

// Import c library 
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
// Import fn library 
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> 
// Declare my tag in my own library (give location) 
<%@taglib tagdir="/WEB-INF/tags/" prefix="bookmark" %> 
// Declare an attribute for this tag 
<%@attribute name="directories" required="true" rtexprvalue="true" type="java.util.List"%> 
// use the attribute 
<c:forEach var="directory" items="${directories}"> 
</c:forEach> 

В my main JSP

// Import my tag lib 
<%@ taglib tagdir="/WEB-INF/tags/" prefix="bookmark" %> 
// Use my tag and pass ${directories} value to the tag 
<bookmark:directories directories="${directories}"></bookmark:directories> 
+0

'' не может использоваться при попытке вызова в ** TAGLIB ** с использованием ** JSTL ** –

+0

Вам не нужно использовать этот специальный тег, важный part - как получить доступ к значению, которое было c: установить – RPresle

+0

, как вы можете видеть .. Я использовал tagLib '' ... Я пытаюсь передать объект в sessionScope для этого 'myComp: JSON' tabLib .... как использовать '' для установки этого значения ... ??? –