2013-03-04 2 views
0

Я не уверен, как определить атрибут value в тегах формы Spring MVC. Я запрашиваю базу данных, и я хотел бы вернуть данные в jsp. Я возвращаю объект в представление в виде списка. Я хотел бы знать, как написать значение атрибута как для списка опций, так и для поля ввода. Под мой код:Spring MVC jsp tag place place для значения тега

JSP
<form:form id="citizenRegistration" name ="citizenRegistration" method="POST" commandName="citizens" action="citizen_registration.htm"> 

<li> 
<label>Select Gender</label><form:select path="genderId" id="genderId" title="Select Your Gender"><form:options items = "${gender.genderList}" selected=???? itemValue="genderId" itemLabel="genderDesc" /> 
</form:select><form:errors path="genderId" class="errors"/> 
</li>    
              <li><form:label for="weight" path="weight">Enter Weight <i>(lbs)</i></form:label> 
<form:input path="weight" id="weight" title="Enter Weight" value= ???/><form:errors path="weight" class="errors"/> 
</li> 

JavaDao

Функция возвращает: ................... .....

List<Citizens> listOfCitizens = getJdbcTemplate().query(sql, new CitizensMapper());  
    return listOfCitizens; 

контроллер

if (user_request.equals("Query")){ 
logger.debug("about to preform query"); 
citizenManager.getListOfCitizens(citizen); 

if(citizenManager.getListOfCitizens(citizen).isEmpty()){ 
    model.addAttribute("icon","ui-icon ui-icon-circle-close"); 
    model.addAttribute("results","Notice: Query Caused No Records To Be Retrived!");  
    } 

//how do i return the List<Citizens> listOfCitizens 
//or what should be done to send the user the data from the database 
return new ModelAndView("citizen_registration");      
} 

ответ

1

Значение происходит от модели объекта (citizens в вашем случае), определенный атрибутом вашей формы commandName. Spring использует это и атрибут path для поиска значения объектов формы.

Таким образом, нет необходимости конкретно указывать значение для атрибута value, например.

EDIT:

Вот упрощенный пример:

@RequestMapping(value = "/editCitizen", method = RequestMethod.GET) 
    public String editCitizen(@ModelAttribute("citizen") Citizen citizen, Model model) { 
    // set attributes of citizen 
    citizen.genderId = "M"; 
    citizen.weight = 180; 
    // etc. 

    // set other model attributes like lists for <form:select>s 
    model.addAttribute("genderList", <list of genders>); 
    return "path.to.my.jsp"; 
    } 

<form:form id="citizenRegistration" name ="citizenRegistration" method="POST" commandName="citizen" action="citizen_registration.htm"> 
    <form:select path="genderId" items="${genderList}" itemLabel="genderDesc" itemValue="genderId"></form:select> 
    <form:input path="weight" id="weight" title="Enter Weight"/> 
</form:form> 
+0

Почему не мое возвращение listOfCitizens не возвращают значения в атрибутах. Функция определяется следующим образом: public List getListOfCitizens (Граждане граждан) {...... получает данные из базы данных ..... return listOfCitizens;} – devdar

+0

Я сделал чек из базы данных, и список не является NULL, он имеет данные, одна запись – devdar

+1

Это зависит от вашего метода контроллера, чтобы предоставить модель для JSP. Делает ли это это? – GriffeyDog