[Opensource] <html:select> and addAutoInPut()

victor victor1898 at hotmail.com
Wed Jun 12 22:50:22 PDT 2002


Hi:

I am have a question about <html:select> and Response.addAutoInput()

There is a table "relation" which simply restores catalog of
relationship. I want to use expresso tag to populate the <select>
options from the database. so I implement getValidValues(String
fieldName) in dbobj "relation"  like this:

public class Relation extends SecuredDBObject{
  ..................
/**
* @returns Vector of Valid Value/Description pairs for Tables
* @throws DBException If the values cannot be retrieved
*/
public Vector getValidValues(String fieldName) throws DBException {
Vector myValues = new Vector();
Relation oneRelation = null;
for (Iterator e = this.searchAndRetrieveList().iterator();
e.hasNext();) {
oneRelation = (Relation) e.next();
myValues.addElement(new ValidValue(
oneRelation.getField("relation"),
oneRelation.getField("relation")));
System.out.println("relation" +oneRelation.getField("relation"));
}
return myValues;
}
..........
}

then on the JSP page I have
<html>
<body>
..........
<html:select property="relation">
.......................
</body>
</html>

, then in my controller's method RunTestState(), I code in two ways,
one works and other one can not work.

The one works like this:
public class MCAController extends DBController{
.....................

protected ControllerResponse runTestState( ControllerRequest
myRequest, ControllerResponse myResponse )
throws ControllerException {
String myName=thisClass+"PromptVictimComplaint() ";
System.out.println( myName );
myResponse.clearFormCache();
try{
Relation r = new Relation();
r.setDBName( myRequest.getDBName() );
Vector v = r.getValidValues("relation");
myResponse.addAutoInput("relation", "relation", "", 20, 20, v);
} catch (DBException dbe){
throw new ControllerException(
myName+ " database exception: "+dbe.getMessage() );
}
return myResponse;
}
..................
}
The one does not work like this:

public class MCAController extends DBController{
.....................


protected ControllerResponse runTestState( ControllerRequest
myRequest, ControllerResponse myResponse )
throws ControllerException {
String myName=thisClass+"PromptVictimComplaint() ";
System.out.println( myName );
myResponse.clearFormCache();
myResponse.setDBName(myRequest.getDBName());
myResponse.addAutoInput("relation",
"com.company.project.dbobj.Relation", "");
return myResponse;
}
..................
}

I got error message as following :
javax.servlet.ServletException: No valid values for input 'relation'
 at
org.apache.jasper.runtime.PageContextImpl.handlePageException(Unknow
n Source)
 at
org.apache.jsp.victimComplaint$jsp._jspService(victimComplaint$jsp.j
ava:152)
 at org.apache.jasper.runtime.HttpJspBase.service(Unknown Source)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(Unkno
wn Source)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(Unknown
Source)
 at org.apache.jasper.servlet.JspServlet.service(Unknown Source)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at org.apache.catalina.core.ApplicationDispatcher.invoke(Unknown
Source)
 at org.apache.catalina.core.ApplicationDispatcher.doForward(Unknown
Source)
 at org.apache.catalina.core.ApplicationDispatcher.forward(Unknown
Source)
 at
org.apache.struts.action.ActionServlet.processActionForward(ActionSe
rvlet.java:1758)
 at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:15
95)
 at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:509
)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unk
nown Source)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown
Source)
 at org.apache.catalina.core.StandardWrapperValve.invoke(Unknown
Source)
 at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown
Source)
 at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
 at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
 at org.apache.catalina.core.StandardContextValve.invoke(Unknown
Source)
 at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown
Source)
 at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
 at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
 at org.apache.catalina.core.StandardContext.invoke(Unknown Source)
 at org.apache.catalina.core.StandardHostValve.invoke(Unknown
Source)
 at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown
Source)
 at org.apache.catalina.valves.AccessLogValve.invoke(Unknown Source)
 at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown
Source)
 at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
 at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
 at org.apache.catalina.core.StandardEngineValve.invoke(Unknown
Source)
 at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown
Source)
 at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
 at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
 at org.apache.catalina.connector.http.HttpProcessor.process(Unknown
Source)
 at org.apache.catalina.connector.http.HttpProcessor.run(Unknown
Source)
 at java.lang.Thread.run(Thread.java:484)


Can anyone tell me why Respone.addAutoInput(String fieldName, String
dbClassName, String defaultValue) can not work?!

Thanks

Victor



More information about the Opensource mailing list