Его можно указать подкласс, что вам нужно, чтобы связываться с. Вы должны добавить дополнительный параметр (скрытый ввод) в свою форму, в котором указывается тип, к которому необходимо привязать. Это поле должно иметь то же имя, что и атрибут модели в этом случае.Затем необходимо реализовать преобразователь, который преобразует значение этого параметра строкового фактического экземпляра, который нужно связать с
Ниже перечислены изменения, которые необходимо реализовать
1) В вашей JSP добавить скрытый ввод внутри вашего
<form:form action="/submit" commandName="shape" method="post">
<input type="hidden" name="shape" value="round"/>
//other form tags
</form:form>
2) Реализовать конвертер для преобразования из строки в Shape
public class StringToShapeConverter implements Converter<String,Shape>{
public Shape convert(String source){
if("round".equalsIgnoreCase(source)){
return new Round();
}
//other shapes
}
}
3) Затем зарегистрировать ваш конвертер так, чтобы Весна MVC знает об этом. Если вы используете Java конфигурации вам необходимо расширяет WebMvcConfigurerAdapter и переопределить метод addFormatters
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter{
@Override
public void addFormatters(FormatterRegistry registry){
registry.addConverter(new StringToShapeConverter());
}
}
Если вы используете конфигурации XML вы можете использовать MVC: аннотацию управляемый элемент, чтобы указать преобразование-сервис для использования. Затем зарегистрируйте конвертер с помощью 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>
Статический тип - это форма, независимо от того, что вы делаете. Это не имеет ничего общего с Весной; это проблема со статической/динамической типизацией. Вы можете создать или создать фабричный/виртуальный конструктор. – duffymo
Почему вы не можете отправить «Круглый» из формы – Priyamal
@Priyamal больше формы и той же формы для каждой фигуры. – ssm