В Struts1.3 Как обрабатывать несколько свойств FormBean для действия

Я использую Struts1.3, у меня есть страница Jsp, на которой отображается список сотрудников на этой странице. Для этого я сделал следующее: у меня есть действие внутри этого действия, я вызываю функцию, которая возвращает список, и я устанавливаю этот список внутри сеанса как session.setAttribute(Constant.EMPLIST,list). И теперь на моей странице Jsp я использую логический тег для повторения этого списка, как показано ниже.

<html:form method="post" action="test.do" styleId="empForm">
  <logic:iterate id="EmpForm" name="<%=Constant.EMPLIST%>">
    <table>
     <tr>
      <td>
        <html:text property="empName" name="EmpForm" styleClass="fieldbox2" styleId="textfield50"/>

      </td>
        <td>

        <html:text property="empSal" name="EmpForm" styleClass="fieldbox3" styleId="textfield50"/>

      </td>
 </table>
</logic:iterate>
 <table>
    <tr>
      <td>
        <img onclick="updateEmpDetails" src="images/update.jpg" />
      </td>
    </tr>
  </table>
</html>

И он показывает все данные о сотрудниках и работает нормально. Но еще одна работа заключается в том, что на этой странице у меня есть кнопка update. И что мне нужно сделать, это после нажатия на кнопку updateEmpDetails. Мне нужно отправить все обновленные данные сотрудника внутри updateAction, но я не могу этого сделать, я не знаю, как обрабатывать несколько значений свойства FormBean. Я могу получить информацию только об одном сотруднике внутри updateAction. Я делаю это внутри своего updateAction

 EmpForm empForm = (EmpForm) form;
System.out.println("EmpId:::" + empForm.getEmpId);

Я не знаю, как это сделать, если это возможно. Список или как обрабатывать несколько значений FormBean. пожалуйста, помогите мне, как это сделать, если какой-либо пример, пожалуйста, это действительно ценит меня. Спасибо

Обновление:: Это мой план Java-класса со свойством setter и getter:

public class Sites {
    private String jobSite="";        
    private String engineerName="";
    private boolean isCheck;
}

Это мой FormBean:

public class SiteToServiceForm extends org.apache.struts.action.ActionForm {


   private List<Sites> sites=new ArrayList<Sites>();

    public List<Sites> getSites() {
        return sites;
    }

    public void setSites(List<Sites> sites) {
        this.sites = sites;
    }


}

Это мое действие:

public class SiteToServicingAction extends org.apache.struts.action.Action {
 List<Sites> siteDetails=SiteSearchDataModel.getSiteDetails(serviceForm);


        ((SiteToServiceForm) form).setSites(siteDetails);
}

Для того, чтобы отображение работало нормально, теперь мне нужно отправить значение сайта обновления, я делаю это внутри действия:

 List<Sites> siteList=serviceForm.getSites();
            if(siteList!=null && siteList.size()>0)
            {
                for(Sites site:siteList)
                {
                    if(site.isIsCheck()==true)
                    {
                        SiteSearchDataModel.updateRecord(serviceForm.getEngineerId(), site.getPropertyId());
                        System.out.println("properyID::::"+site.getPropertyId());
                    }
                }
            }

И я не могу получить список обновлений в свой класс действий, пожалуйста, помогите мне.


person subodh    schedule 01.11.2011    source источник


Ответы (1)


1 иметь форму действия карты Action Form 2 для Action в struts-config.xml 3 иметь поле List<Employee> в форме 4 в JSP использовать следующий код

<logic:iterate id="emp" indexId="i" name="FormName"
            property="employees">

 <html:text value="${FormName.employees[i].employeeName}" styleClass="fieldbox3"/>
 <html:text value="${FormName.employees[i].employeeSal}" styleClass="fieldbox3"/>

<logic:iterate>
person jmj    schedule 01.11.2011
comment
Спасибо, Джигар. Но это не полностью удовлетворило бы мои потребности, можете ли вы дать мне какой-нибудь пример или ссылку, основанную на Struts1.3. Что добавляет несколько значений и обновляет несколько значений FormBean одновременно. Если это возможно для вас, пожалуйста, помогите мне. Большое спасибо - person subodh; 03.11.2011
comment
Jigar, вышеприведенное работает нормально, но не может получить значение полей обновления со страницы jsp в класс действий. Он показывает только исходные значения, поступающие из БД, и после изменения значения полей оно остается неизменным в классе действий. - person subodh; 15.11.2011
comment
Сопоставили ли вы класс действия и компонент формы? - person jmj; 15.11.2011
comment
Вы можете посмотреть на необработанный запрос, который отправляется? - person jmj; 15.11.2011
comment
Я использовал неправильное свойство для доступа к полю, сгенерированное имя html отличается от того, которое я использовал. - person subodh; 16.11.2011
comment
Jigar, в случае логического поля я не получаю запись обновления, пожалуйста, помогите мне, если я добавил это ‹td›‹html:checkbox name=emp value=${emp.isCheck} property=isCheck styleId=isCheck indexed=true/ ›‹/td›, тогда я не получаю значение обновления true или false. - person subodh; 17.11.2011
comment
браузер не будет отправлять данные, если они ложны. поэтому в методе сброса формы вам нужно сбросить его или взять скрытое поле, которое отправит ложное значение - person jmj; 17.11.2011
comment
это другой вопрос, вы должны открыть новый - person jmj; 17.11.2011
comment
См. эту ссылку, stackoverflow.com/questions/8168663/ - person subodh; 17.11.2011