Итератор Struts не работает - PullRequest
2 голосов
/ 09 января 2012

Несмотря на то, что я нашел много других подобных вопросов и потратил на них много времени, я не могу понять, что происходит с моим итератором.

У меня есть список объектов, которые я хочу повторитьи отображать различные свойства каждого объекта в текстовых полях.У меня есть итератор установки, как в приведенном ниже коде, но почему-то строки не появляются.

Это jsp:

<s:form theme="simple" id="salaryDetails" name="salaryDetails">
    <table>
        <tr>
            <td>Name</td>
            <td>Basic</td>
            //etc//
        </tr>

        <s:iterator value="salaryDetail" var="salaries">
            <tr>
                <td><s:textfield name="emplName" value="%{employeeCode}"/></td>
                <td><s:textfield name="basic"    value="%{basic}"/></td>
            </tr>
        </s:iterator>
    </table>
</s:form>

Выход этой формы - просто строка с заголовками, тогда как яожидайте строки текстовых полей с некоторыми предварительно заполненными данными.Кажется, итератор не работает.Я уверен, что список содержит данные, потому что я могу напечатать их на консоли в классе действий.

Пожалуйста, совет !!

Это действительно срочно.

Спасибо

1 Ответ

1 голос
/ 09 января 2012

Кажется, что что-то не так с вашим действием. Либо вы не определили общедоступный метод получения для своего списка, либо вы не используете свойство Bean должным образом. быстрый пример вашего примера работает нормально для меня вот пример кода

public classDemoAction extends ActionSupport{
 private List<SalaryDetail> salaryDetail;
 // getter ans setter for this

 public String execute() throws Exception{
   SalaryDetail detail=new SalaryDetail();
   detail.setName("a");
   salaryDetail=new ArrayList<SalaryDetail>();
   SalaryDetail detail1=new SalaryDetail();
   detail1.setName("a");
   salaryDetail.add(detail);
   salaryDetail.add(detail1);
   return SUCCESS;

 }

}

вот код jsp

 <s:form theme="simple" id="salaryDetails" name="salaryDetails">
        <table>
        <tr>
            <td>Name</td>
            <td>Basic</td>
            //etc//
        </tr>

        <s:iterator value="salaryDetails">
            <tr>
                <td><s:textfield name="emplName" value="%{name}"/></td>

            </tr>
        </s:iterator>
    </table>

просто перепроверьте код, есть ли какая-то опечатка или может быть непостоянство с именами

...