benk-master-flash
asked on
Submit BOOLEAN type to Java Bean using FORM -- getting type mismatch
gettig error from following code... pls help
***** BEANTEST.JSP*********
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head><title>Let's Test a Bean</title></head>
<body bgcolor=white text=black link=black vlink=black>
<%
if (request.getParameter("rel oad") != null) {
%>
<jsp:useBean id="formHandler" class="coreservlets.beans. UserBean" scope="session" />
<jsp:setProperty name="formHandler"
property="username"
value='<%= request.getParameter("user name") %>' />
<jsp:setProperty name="formHandler"
property="password"
value='<%= request.getParameter("pass word") %>' />
<jsp:setProperty name="formHandler"
property="changed"
value='<%= request.getParameter("chan ged") %>' />
<jsp:forward page="./Controller.jsp" />
<% } else { %>
<center><b>WELCOME! -- Let's Test a Bean</b>
<br>
<form action='<%= response.encodeURL("BeanTe st.jsp?rel oad=true") %>'>
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
property isChanged() = boolean true<br>
<input type="hidden" name="changed" value=true><br>
<input type="submit" name="reload" value="Reload" >
</form>
</center>
<% } %>
</body>
</html>
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperEx ception: argument type mismatch
org.apache.jasper.runtime. JspRuntime Library.ha ndleSetPro perty(JspR untimeLibr ary.java:6 65)
org.apache.jsp.BeanTest_js p._jspServ ice(BeanTe st_jsp.jav a:75)
org.apache.jasper.runtime. HttpJspBas e.service( HttpJspBas e.java:94)
javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 802)
org.apache.jasper.servlet. JspServlet Wrapper.se rvice(JspS ervletWrap per.java:3 24)
org.apache.jasper.servlet. JspServlet .serviceJs pFile(JspS ervlet.jav a:292)
org.apache.jasper.servlet. JspServlet .service(J spServlet. java:236)
javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 802)
root cause
java.lang.IllegalArgumentE xception: argument type mismatch
sun.reflect.NativeMethodAc cessorImpl .invoke0(N ative Method)
sun.reflect.NativeMethodAc cessorImpl .invoke(Na tiveMethod AccessorIm pl.java:39 )
sun.reflect.DelegatingMeth odAccessor Impl.invok e(Delegati ngMethodAc cessorImpl .java:25)
java.lang.reflect.Method.i nvoke(Meth od.java:32 4)
org.apache.jasper.runtime. JspRuntime Library.ha ndleSetPro perty(JspR untimeLibr ary.java:6 63)
org.apache.jsp.BeanTest_js p._jspServ ice(BeanTe st_jsp.jav a:75)
org.apache.jasper.runtime. HttpJspBas e.service( HttpJspBas e.java:94)
javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 802)
org.apache.jasper.servlet. JspServlet Wrapper.se rvice(JspS ervletWrap per.java:3 24)
org.apache.jasper.servlet. JspServlet .serviceJs pFile(JspS ervlet.jav a:292)
org.apache.jasper.servlet. JspServlet .service(J spServlet. java:236)
javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
A
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<%@ page import="java.util.*" %>
<jsp:useBean id="formHandler" class="coreservlets.beans. UserBean" scope="session"/>
**** CONTROLLER.JSP *******
<html>
<head>
<title>Using jsp:setProperty</title>
</head>
<body>
<center>
<b>Page has been forwarded</b><br>
username = <jsp:getProperty name="formHandler" property="username"/><br>
password = <jsp:getProperty name="formHandler" property="password"/><br>
changed = <jsp:getProperty name="formHandler" property="changed"/><br>
<b>Horray it worked!</b>
</center>
</body>
</html>
***** USERBEAN.JAVA ********
package coreservlets.beans;
import java.util.*;
/** use bean to represent DB user */
public class UserBean {
private String username;
private String password;
private boolean changed;
public String getUsername() {
return(username);
}
public String getPassword() {
return(password);
}
public boolean isChanged() {
return(changed);
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public void setChanged(boolean changed) {
this.changed = changed;
}
}
***** BEANTEST.JSP*********
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head><title>Let's Test a Bean</title></head>
<body bgcolor=white text=black link=black vlink=black>
<%
if (request.getParameter("rel
%>
<jsp:useBean id="formHandler" class="coreservlets.beans.
<jsp:setProperty name="formHandler"
property="username"
value='<%= request.getParameter("user
<jsp:setProperty name="formHandler"
property="password"
value='<%= request.getParameter("pass
<jsp:setProperty name="formHandler"
property="changed"
value='<%= request.getParameter("chan
<jsp:forward page="./Controller.jsp" />
<% } else { %>
<center><b>WELCOME! -- Let's Test a Bean</b>
<br>
<form action='<%= response.encodeURL("BeanTe
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
property isChanged() = boolean true<br>
<input type="hidden" name="changed" value=true><br>
<input type="submit" name="reload" value="Reload" >
</form>
</center>
<% } %>
</body>
</html>
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperEx
org.apache.jasper.runtime.
org.apache.jsp.BeanTest_js
org.apache.jasper.runtime.
javax.servlet.http.HttpSer
org.apache.jasper.servlet.
org.apache.jasper.servlet.
org.apache.jasper.servlet.
javax.servlet.http.HttpSer
root cause
java.lang.IllegalArgumentE
sun.reflect.NativeMethodAc
sun.reflect.NativeMethodAc
sun.reflect.DelegatingMeth
java.lang.reflect.Method.i
org.apache.jasper.runtime.
org.apache.jsp.BeanTest_js
org.apache.jasper.runtime.
javax.servlet.http.HttpSer
org.apache.jasper.servlet.
org.apache.jasper.servlet.
org.apache.jasper.servlet.
javax.servlet.http.HttpSer
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
A
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<%@ page import="java.util.*" %>
<jsp:useBean id="formHandler" class="coreservlets.beans.
**** CONTROLLER.JSP *******
<html>
<head>
<title>Using jsp:setProperty</title>
</head>
<body>
<center>
<b>Page has been forwarded</b><br>
username = <jsp:getProperty name="formHandler" property="username"/><br>
password = <jsp:getProperty name="formHandler" property="password"/><br>
changed = <jsp:getProperty name="formHandler" property="changed"/><br>
<b>Horray it worked!</b>
</center>
</body>
</html>
***** USERBEAN.JAVA ********
package coreservlets.beans;
import java.util.*;
/** use bean to represent DB user */
public class UserBean {
private String username;
private String password;
private boolean changed;
public String getUsername() {
return(username);
}
public String getPassword() {
return(password);
}
public boolean isChanged() {
return(changed);
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public void setChanged(boolean changed) {
this.changed = changed;
}
}
maybe try change:
public void setChanged(boolean changed) {
this.changed = changed;
}
to:
public void setChanged(string changed) {
this.changed = (changed.equalsIgnoreCase( "true"))?t rue:false;
}
?
public void setChanged(boolean changed) {
this.changed = changed;
}
to:
public void setChanged(string changed) {
this.changed = (changed.equalsIgnoreCase(
}
?
ASKER
went through that, and the server responds
rg.apache.jasper.JasperExc eption: Can't find a method to write property 'changed' of type 'boolean' in a bean of type 'coreservlets.beans.UserBe an'
rg.apache.jasper.JasperExc
opps, should it be:
public void setChanged(String strchanged) {
this.changed = (strchanged.equalsIgnoreCa se("true") )?true:fal se;
}
public void setChanged(String strchanged) {
this.changed = (strchanged.equalsIgnoreCa
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
or
<jsp:setProperty name="formHandler" property="*"/>
<jsp:setProperty name="formHandler" property="*"/>
The points should have been split, siliconeagle's solution should work as well. rrz
ASKER