클래스를 클래스 객체로 속성에 전달하는 방법이 있습니까?Faces Config의 클래스 매개 변수
즉
<managed-property>
<property-name>clazz</property-name>
<value>java.lang.Double.class</value>
</managed-property>
클래스를 클래스 객체로 속성에 전달하는 방법이 있습니까?Faces Config의 클래스 매개 변수
즉
<managed-property>
<property-name>clazz</property-name>
<value>java.lang.Double.class</value>
</managed-property>
아니, 아니이 있습니다위한 변환기가 확실하지 않다 방법. 문제의 클래스가 (디폴트의) 인수 없음의 생성자을 가지는 경우에만 가능합니다. java.lang.Double
에는없는 문자가 있습니다. 또한 이론 상으로는 귀하의 구성이 유효하지 않습니다.
<managed-bean>
<managed-bean-name>bean</managed-bean-name>
<managed-bean-class>mypackage.Bean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>clazz</property-name>
<property-class>java.lang.Class</property-class>
<value>#{clazz.class}</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>clazz</managed-bean-name>
<managed-bean-class>java.lang.Double</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
</managed-bean>
당신은 정말 지정해야
public class Bean {
private Class<?> clazz;
public Class<?> getClazz() {
return clazz;
}
public void setClazz(Class<?> clazz) {
this.clazz = clazz;
}
}
과 : 당신은 (기본값)로
java.lang.Double
이 definied되어있는 장소에서 인수 없음의 생성자를 클래스를 사용하지 않는 경우 다음은 일한 것 그것은
String
으로
Class#forName()
을 사용하여
java.lang.Class
을 얻습니다. 조합
<managed-bean>
<managed-bean-name>bean</managed-bean-name>
<managed-bean-class>mypackage.Bean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>className</property-name>
<value>java.lang.Double</value>
</managed-property>
</managed-bean>
public class Bean {
private Class<?> clazz;
public Class<?> getClazz() {
return clazz;
}
public void setClassName(String name) {
try {
this.clazz = Class.forName(name);
} catch (ClassNotFoundException e) {
throw new IllegalArgumentException("Illegal class name.", e);
}
}
}
예. 그러나 그것은 String으로 실현 될 것입니다. 당신은 당신은 <property-class>java.lang.Class</property-class>
를 사용하려고 할 수 있습니다 Class.forName(clazz)
를 사용하여, 필요할 때마다 여러분의 빈에 Class
으로 바꿀 수 있지만, 나는이 내장
그게 정말에 ... 난 당신이 downvote 버튼을 조금 성급한 생각 –
@DD 클래스를 통과하지와 : 여기에 킥오프 예입니다. 이것은 작동하고 콩 자체를 보지 못했고 더 말할 수 없습니다. – Bozho
죄송합니다. 나는 원래 게시물에서 더 분명해야했습니다. 더 명확하게 편집 할 것입니다. –