[jboss-user] [JBoss Seam] - Re: SeamSelectItems - 1.1.1beta4
MikeDougherty
do-not-reply at jboss.com
Thu Jan 11 11:44:36 EST 2007
in home.xhtml:
| <h:form id="selectSubject">
| <h:selectOneMenu value="#{subject}">
| <si:selectItems value="#{subjects}" var="s" label="#{s.title}" key="#{s.id}" ></si:selectItems>
| </h:selectOneMenu>
| </h:form>
|
in Subject.java:
|
| @Name("subject")
| public class Subject implements java.io.Serializable {
| private static final long serialVersionUID = -1926918108184076192L;
| private String id = "";
| private String title = "";
| private String description = "";
| }
|
It also contains getters and setters, but for brevity I left them out.
In SubjectFactoryBean.java
| @Stateless
| @Name("subjectFactory")
| @Scope(APPLICATION)
| public class SubjectFactoryBean implements SubjectFactory {
|
| @Logger
| private Log log;
|
| @Out
| private List<Subject> subjects;
|
| @Factory("subjects")
| public void load() {
| log.debug("Loading subject list.");
|
| subjects = new ArrayList<Subject>();
| subjects.add( new Subject("sub-a", "Subject A") );
| subjects.add( new Subject("sub-b", "Subject B") );
| subjects.add( new Subject("sub-c", "Subject C") );
|
| log.debug("Subject list contains #0 entries.", subjects.size() );
| }
| }
|
I'm getting the following error:
| Value is no String (class=mil.fits.survey.Subject$$EnhancerByCGLIB$$5cdc06c9, value=subject = ) and component selectSubject:_id12with path: {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /home.xhtml][Class: javax.faces.component.html.HtmlForm,Id: selectSubject][Class: javax.faces.component.html.HtmlSelectOneMenu,Id: _id12]} does not have a Converter
|
So I try adding a converter....
Adding this method to SubjectFactoryBean.java
| public Converter getConverter() {
| return new SelectItemsConverter() {
| @Override
| protected Object convertToObject(FacesContext arg0, UIComponent arg1, String arg2)
| throws ConverterException {
| log.debug("convertToObject(#0, #1, #2)", arg0, arg1, arg2);
| // TODO Auto-generated method stub
| return new Subject(arg2, arg2);
| }
|
| @Override
| protected String convertToString(FacesContext arg0, UIComponent arg1, Object arg2)
| throws ConverterException {
| log.debug("convertToString(#0, #1, #2)", arg0, arg1, arg2);
| // TODO Auto-generated method stub
| return arg2.toString();
| }
|
| };
| }
|
And in home.xhtml...
| <h:form id="selectSubject">
| <h:selectOneMenu value="#{subject}" converter="#{subjectFactory.converter}">
| <si:selectItems value="#{subjects}" var="s" label="#{s.title}" key="#{s.id}" ></si:selectItems>
| </h:selectOneMenu>
| </h:form>
|
|
Gives me the following error...
| /home.xhtml @16,83 converter="#{subjectFactory.converter}": Exception
| getting value of property converter of base of type :
| org.jboss.seam.intercept.Proxy$$EnhancerByCGLIB$$4461012a
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4000535#4000535
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4000535
More information about the jboss-user
mailing list