Как записать выражение в значение ‹s:textfield ›

Привет, друг, я пытаюсь записать выражение значения расшифровки в s: textfield value "‹%=custFirstName%>" что-то вроде этого, но это дает мне ошибку, т.е. согласно TLD или директиве атрибута в файле тега, значение атрибута не принимает никаких выражений так каков альтернативный способ сделать то же самое в . Пожалуйста, помогите мне. в типе INPUT он работает хорошо, но я хочу сделать то же самое через struts tage.

это мой код

    <s:iterator value="userList">
        <s:set var="custFirstName" value="custFirstname"/>
        <s:set var="custLastName" value="custLastname"/>
        <s:set var="custEmail" value="custEmail"/>
        <s:set var="custPhone" value="custPhone"/>
        <s:set name="custVerified" value="custIsVerified"/>
        <%
        String custFirstName = pageContext.getAttribute("custFirstName").toString();
        String custLastName = pageContext.getAttribute("custLastName").toString();
        String custEmail = pageContext.getAttribute("custEmail").toString();
        String custPhone = pageContext.getAttribute("custPhone").toString();

        Encryption encryption=new Encryption();
        custFirstName = Encryption.decString(custFirstName);
        custLastName = Encryption.decString(custLastName);
        custEmail = Encryption.decString(custEmail);
        custPhone = Encryption.decString(custPhone);
    %>




            <td> <s:textfield value="<%=custFirstName%>" label="First Name"/></td>
            <%-- <input type="text" value="<%=custFirstName%>" > --%>
            <td> <s:textfield name="custLastName" label="Last Name"/></td>
            <td> <s:textfield name="custEmail" label="Email"/></td>
            <td> <s:textfield name="custPhone" label="phone"/></td>
            <td> <s:textfield name="custCountry" label="Country"/></td>
            <td> <s:textfield name="custState" label="State"/></td>
            <td> <s:textfield name="custCity" label="City"/></td>
            <s:submit value="Update"></s:submit>

    </s:iterator>   

</s:form>



<input type="text "value="<%=custFirstName%>">

и я хочу написать выше выражение входного значения в s: textfield value="" как я могу это сделать.


person Harshit    schedule 24.12.2014    source источник
comment
‹%=custFirstName%› это значение скрипта...??   -  person goodyzain    schedule 24.12.2014
comment
скриптлеты не рекомендуются в JSP и не допускаются в тегах struts. Вы должны использовать лучший подход. Зачем вам нужно писать бизнес-логику в JSP?   -  person Roman C    schedule 24.12.2014
comment
Я знаю, что это не очень хороший подход, но я хочу расшифровать значение, которое я использую.   -  person Harshit    schedule 24.12.2014


Ответы (2)


Вы можете использовать что-то вроде:

<td> <s:textfield value="%{#custFirstName}" label="First Name"/></td>
person SMA    schedule 24.12.2014
comment
Я также использовал это, но он показывает мне зашифрованное значение, а не расшифрованное значение. - person Harshit; 24.12.2014
comment
Принесите свой тег c:set после расшифровки значений, чтобы они отражали расшифрованные значения, а не зашифрованные. - person SMA; 24.12.2014
comment
Вы использовали <s:set var="custFirstName"><%=custFirstName%></s:set> после расшифровки? Если этого не сделать, то это правильный способ присвоения значения. - person SMA; 24.12.2014
comment
Да, это был правильный вопрос, и хорошо, что он был отформатирован и хорошо объяснен. Так что +1. - person SMA; 24.12.2014

Вам нужно было установить атрибут value, правильно, но это должно быть выражение OGNL.

Encryption encryption=new Encryption();
custFirstName = Encryption.decString(custFirstName);
custLastName = Encryption.decString(custLastName);
custEmail = Encryption.decString(custEmail);
custPhone = Encryption.decString(custPhone);
ValueStack vs = ActionContext.getContext().getValueStack();
vs.set("custFirstName", custFirstName);
vs.set("custLastName", custLastName);
vs.set("custEmail", custEmail);
vs.set("custPhone", custPhone);

и тогда вы можете использовать OGNL

<s:textfield name="custFirstName" value="%{#custFirstName}" label="First Name"/>

...

Вы также можете просмотреть этот Struts 2 Value Stack/OGNL.

person Roman C    schedule 24.12.2014
comment
Нет, он не работает, он показывает мне зашифрованное значение, а не расшифрованное значение. - person Harshit; 24.12.2014
comment
Я не знаю, что делает этот класс Encryption, но значения, расшифрованные или нет, отображаются в JSP в текстовых полях. - person Roman C; 24.12.2014