[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