2015-06-14 27 views
0

我們是否可以迭代以下形式的對象集合:Spring 3.2.5中的radiobuttons?Spring 3.2.5窗體標籤radioButtons行爲

例如在addEmployee.jsp,

<td><form:radiobuttons path="empDepartmentName" items="${departments}"/></td> 

和填充部門的方法,

@RequestMapping(value = "/", method = RequestMethod.GET) 
    public String homePage(ModelMap map) { 
     map.addAttribute("employee", new Employee()); 
     populateDepartments(map); 
     return "addEmployee"; 
    } 

    private void populateDepartments(ModelMap map){ 
     List<String> departments = new ArrayList<String>(); 
     departments.add("Dept 1"); 
     departments.add("Dept 2"); 
     map.addAttribute("departments", departments);  

    } 

可以是部門是List<Department>,並允許客戶選擇從UI部門名稱並將所選部門直接映射到員工實體中,而不是通過瞬時變量empDepartmentName,然後獲取從所選部門名稱中選擇Department並將Department對象分配給Employeee並保留Employee。我正在做這個正確的方式?

@Entity 
public class Employee { 

    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    private Integer id; 
    private String name; 
    private String address; 

    @Transient 
    private String empDepartmentName; 

    @OneToOne(fetch=FetchType.LAZY) 
    private Department department; 
} 

回答

0

避免做一個短暫類 - 以員工姓名, 可以使用彈簧定製屬性編輯器將字符串轉換爲一個類型。

自定義屬性編輯器可用於將字符串轉換爲對象類型。 因此,在Employee類上,您可以擁有Department屬性,因此不需要empDepName瞬態字段。

這裏是一個很好的教程 - https://www.credera.com/blog/technology-insights/java/spring-mvc-custom-property-editors/

+0

謝謝。但有沒有其他簡單的解決方案。我想這是一個相當頻繁的Web應用程序的情況? – Harshana

+0

是的,我有這幾次。自己結束使用屬性編輯器。 –

+0

@harshana如果這有幫助,如果你正確地標記答案會很好。謝謝! –

0

您還可以使用轉換器(http://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html#core-convert)是這樣的:

public class CategoryConverter implements Converter<String, Category> { 

    @Autowired 
    private CategoryService categoryService; 

    @Override 
    public Category convert(String id) 
    { 
     return categoryService.findById(Integer.parseInt(id)); 
    } 
} 

和servlet的配置:

<bean id="conversionService" 
class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> 
     <property name="converters"> 
      <list> 
       <bean class="com.app.converters.CategoryConverter" /> 
      </list> 
     </property> 
    </bean> 

我通常用它帶表格:選擇:

<form:select path="department"> 
    <form:options items="${departmentList}" itemValue="id" itemLabel="name" /> 
</form:select>