Как получить доступ к динамическим атрибутам в JSP (Struts2) - PullRequest
0 голосов
/ 26 января 2011

В действии я устанавливаю отправленные параметры.

    for(Enumeration<String> enumParams = request.getParameterNames(); enumParams.hasMoreElements();) {
        String name = enumParams.nextElement();
        String value = request.getParameter(name);
        request.setAttribute(name, value);
    }

В JSP я хотел бы получить доступ к значениям атрибута запроса.

<s:iterator value="variables">
    <input type="text" 
        id="<s:property value="sign"/>"
        name="<s:property value="sign"/>"  
        value="<s:property value="%{#attr['sign']}"/>" />
</s:iterator>

(переменные - это объекты со знаком поля,и т. д.)

В настоящее время я получаю с <s:property value="%{#attr['sign']}"/> только знак переменной, а не значение.Он не вычисляет 'sign'.

Сгенерированный HTML:

<input id="A" name="A" value="A" type="text">

Так что, если жестко запрограммировать такой знак <s:property value="%{#attr['A']}"/>, я получу правильное значение ...

Есть какие-нибудь подсказки?Пожалуйста.

1 Ответ

3 голосов
/ 26 января 2011

С небольшой хитростью я понял:

<s:iterator value="variables">
    <s:set var="mySign" value="%{sign}" name="mySign" scope="request"></s:set>
    <jsp:useBean id="mySign" class="java.lang.String" scope="request" ></jsp:useBean>           
    <input type="text" 
        id="<s:property value="sign"/>"
        name="<s:property value="sign"/>"  
        value="<%=request.getAttribute(mySign)%>">
</s:iterator>
...