thể của nó để xác định các lớp mà bạn cần phải liên kết với. Bạn phải thêm một tham số bổ sung (đầu vào bị ẩn) trong biểu mẫu của bạn để chỉ định loại cần được ràng buộc. Trường này phải có cùng tên với thuộc tính mô hình trong trường hợp này.Sau đó bạn cần phải thực hiện một chuyển đổi có thể chuyển đổi chuỗi này giá trị tham số để các ví dụ thực tế mà bạn cần phải liên kết với
Sau đây là những thay đổi mà bạn cần phải thực hiện
1) Trong jsp của bạn thêm đầu vào ẩn bên trong của bạn
<form:form action="/submit" commandName="shape" method="post">
<input type="hidden" name="shape" value="round"/>
//other form tags
</form:form>
2) Thực hiện một chuyển đổi để chuyển đổi từ string để một Shape
public class StringToShapeConverter implements Converter<String,Shape>{
public Shape convert(String source){
if("round".equalsIgnoreCase(source)){
return new Round();
}
//other shapes
}
}
3) Sau đó đăng ký chuyển đổi của bạn để Spring MVC biết về nó. Nếu bạn đang sử dụng Java cấu hình bạn cần phải mở rộng WebMvcConfigurerAdapter và ghi đè lên addFormatters phương pháp
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter{
@Override
public void addFormatters(FormatterRegistry registry){
registry.addConverter(new StringToShapeConverter());
}
}
Nếu bạn đang sử dụng cấu hình xml bạn có thể sử dụng MVC: yếu tố chú thích hướng để xác định việc chuyển đổi dịch vụ để sử dụng. Sau đó, đăng ký công cụ chuyển đổi của bạn bằng cách sử dụng FormattingConversionSErviceFactoryBean
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<mvc:annotation-driven conversion-service="conversionService"/>
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="some.package.StringToShapeConverter"/>
</set>
</property>
</bean>
</beans>
Nguồn
2016-06-03 08:01:48
Loại tĩnh là Hình dạng bất kể bạn làm gì. Điều này không liên quan gì đến Spring; đây là vấn đề với nhập tĩnh/động. Bạn có thể đúc hoặc tạo một nhà máy/nhà xây dựng ảo. – duffymo
tại sao bạn không thể gửi một 'Vòng tròn' từ biểu mẫu – Priyamal
@Priyamal có nhiều hình dạng và hình dạng giống nhau cho mỗi hình dạng. – ssm