异常:
org.apache.jasper.JasperException: Cannot find any information on property 'mId' in a bean of type 'beans.Manager'
JavaBean: Manager(mId,mName,mPassword)
servlet代码:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
String url = "jdbc:mysql://localhost:3306/db_xbsk";
String username = "root";
String password = "";
String sql = "select * from manager";
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url,username,password);
st = conn.createStatement();
rs = st.executeQuery(sql);
Manager m = new Manager();
while(rs.next()){
m.setMId(rs.getInt("m_id"));
System.out.println("============到这了===========!");
m.setMName(rs.getString("m_name"));
m.setMPassword(rs.getString("m_password"));
System.out.println("============ID!"+m.getMId());
System.out.println("============Name!"+m.getMName());
System.out.println("============Password!"+ m.getMPassword());
HttpSession session = request.getSession();
session.setAttribute("mm", m);
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/display.jsp");
requestDispatcher.forward(request, response);
}
}catch (Exception e){
System.out.println(e.getMessage());
}
finally{
System.out.println("============资源释放!");
if(conn != null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}}
if(st != null){try {st.close();} catch (SQLException e) {e.printStackTrace();}}
if(rs != null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}
}
}
前台Jsp代码:
<body>
<jsp:useBean id="mm" type="beans.Manager" scope="session" />
<jsp:getProperty name="mm" property="mId"/>
<jsp:getProperty name="mm" property="mName"/>
<jsp:getProperty name="mm" property="mPassword"/>
</body>
15 个解决方案
#1
while(rs.next()){
确认这句执行啦?
确认这句执行啦?
#2
确定。控制台打印了:
============到这了===========!
============ID!2
============Name!旺旺小小酥
============Password!123321
============到这了===========!
============ID!2
============Name!旺旺小小酥
============Password!123321
#3
跳转错了,跳转页面要放到循环外面 ,只能跳转一次
应改为
while(rs.next()){
....
....
HttpSession session = request.getSession();
session.setAttribute("mm", m);
}
request.getRequestDispatcher("/display.jsp").requestDispatcher.forward(request, response);
应改为
while(rs.next()){
....
....
HttpSession session = request.getSession();
session.setAttribute("mm", m);
}
request.getRequestDispatcher("/display.jsp").requestDispatcher.forward(request, response);
#4
把那个设置属性的值也放在外面
while(rs.next()){
....
....
}
HttpSession session = request.getSession();
session.setAttribute("mm", m);
request.getRequestDispatcher("/display.jsp").requestDispatcher.forward(request, response);
while(rs.next()){
....
....
}
HttpSession session = request.getSession();
session.setAttribute("mm", m);
request.getRequestDispatcher("/display.jsp").requestDispatcher.forward(request, response);
#5
改了.将跳转的语句放出来..运行..还是一样.jsp页面无法读JavaBean的值.
#6
Cannot find any information on property 'mId' in a bean of type 'beans.Manager'
?感觉是你Manager中的'mId' 定义有问题
?感觉是你Manager中的'mId' 定义有问题
#7
Manager 里面定义的int类型。
这是servlet中的赋值语句。能赋值。
m.setMId(rs.getInt("m_id"));
这是servlet中的赋值语句。能赋值。
m.setMId(rs.getInt("m_id"));
#8
这样你在jsp页面上直接写
<%
Manager mm = (Manager )session.getAttribute("mm");
System.out.println(mm.getMId());
%>
看看能获得结构不,如果能,说明你的 <jsp:useBean 用法有问题,如果不能,说明你的session根本没存在这个数据
<%
Manager mm = (Manager )session.getAttribute("mm");
System.out.println(mm.getMId());
%>
看看能获得结构不,如果能,说明你的 <jsp:useBean 用法有问题,如果不能,说明你的session根本没存在这个数据
#9
还有检查下你的while(rs.next()){
这个东西循环了几次,如果是多次,就要把
HttpSession session = request.getSession();
session.setAttribute("mm", m);
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/display.jsp");
requestDispatcher.forward(request, response);
移到while(rs.next()){ }外面
这个东西循环了几次,如果是多次,就要把
HttpSession session = request.getSession();
session.setAttribute("mm", m);
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/display.jsp");
requestDispatcher.forward(request, response);
移到while(rs.next()){ }外面
#10
Bean中的方法名改成这样:
setmId
getmId
setmId
getmId
#11
这个应该是正解
#12
终于写出来了。
看来是<jsp:useBean 的问题。
这个问题是解决了。
新问题又来了。呵呵
谢谢美女程序员!
看来是<jsp:useBean 的问题。
这个问题是解决了。
新问题又来了。呵呵
谢谢美女程序员!
#13
<jsp:getProperty name="mm" property="mId"/>
试试这样<jsp:getProperty name="mm" property=" ${mm.mId}"/>
<jsp:getProperty name="mm" property="mName"/>
试试这样<jsp:getProperty name="mm" property=" ${mm.mName}"/>
<jsp:getProperty name="mm" property="mPassword"/>
试试这样<jsp:getProperty name="mm" property=" ${mm.mPassword}"/>
试试这样<jsp:getProperty name="mm" property=" ${mm.mId}"/>
<jsp:getProperty name="mm" property="mName"/>
试试这样<jsp:getProperty name="mm" property=" ${mm.mName}"/>
<jsp:getProperty name="mm" property="mPassword"/>
试试这样<jsp:getProperty name="mm" property=" ${mm.mPassword}"/>
#14
当前结贴
新问题,再开贴
新问题,再开贴
#15
这样可以。这样写出来了。谢谢.
谢谢大家
#1
while(rs.next()){
确认这句执行啦?
确认这句执行啦?
#2
确定。控制台打印了:
============到这了===========!
============ID!2
============Name!旺旺小小酥
============Password!123321
============到这了===========!
============ID!2
============Name!旺旺小小酥
============Password!123321
#3
跳转错了,跳转页面要放到循环外面 ,只能跳转一次
应改为
while(rs.next()){
....
....
HttpSession session = request.getSession();
session.setAttribute("mm", m);
}
request.getRequestDispatcher("/display.jsp").requestDispatcher.forward(request, response);
应改为
while(rs.next()){
....
....
HttpSession session = request.getSession();
session.setAttribute("mm", m);
}
request.getRequestDispatcher("/display.jsp").requestDispatcher.forward(request, response);
#4
把那个设置属性的值也放在外面
while(rs.next()){
....
....
}
HttpSession session = request.getSession();
session.setAttribute("mm", m);
request.getRequestDispatcher("/display.jsp").requestDispatcher.forward(request, response);
while(rs.next()){
....
....
}
HttpSession session = request.getSession();
session.setAttribute("mm", m);
request.getRequestDispatcher("/display.jsp").requestDispatcher.forward(request, response);
#5
改了.将跳转的语句放出来..运行..还是一样.jsp页面无法读JavaBean的值.
#6
Cannot find any information on property 'mId' in a bean of type 'beans.Manager'
?感觉是你Manager中的'mId' 定义有问题
?感觉是你Manager中的'mId' 定义有问题
#7
Manager 里面定义的int类型。
这是servlet中的赋值语句。能赋值。
m.setMId(rs.getInt("m_id"));
这是servlet中的赋值语句。能赋值。
m.setMId(rs.getInt("m_id"));
#8
这样你在jsp页面上直接写
<%
Manager mm = (Manager )session.getAttribute("mm");
System.out.println(mm.getMId());
%>
看看能获得结构不,如果能,说明你的 <jsp:useBean 用法有问题,如果不能,说明你的session根本没存在这个数据
<%
Manager mm = (Manager )session.getAttribute("mm");
System.out.println(mm.getMId());
%>
看看能获得结构不,如果能,说明你的 <jsp:useBean 用法有问题,如果不能,说明你的session根本没存在这个数据
#9
还有检查下你的while(rs.next()){
这个东西循环了几次,如果是多次,就要把
HttpSession session = request.getSession();
session.setAttribute("mm", m);
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/display.jsp");
requestDispatcher.forward(request, response);
移到while(rs.next()){ }外面
这个东西循环了几次,如果是多次,就要把
HttpSession session = request.getSession();
session.setAttribute("mm", m);
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/display.jsp");
requestDispatcher.forward(request, response);
移到while(rs.next()){ }外面
#10
Bean中的方法名改成这样:
setmId
getmId
setmId
getmId
#11
这个应该是正解
#12
终于写出来了。
看来是<jsp:useBean 的问题。
这个问题是解决了。
新问题又来了。呵呵
谢谢美女程序员!
看来是<jsp:useBean 的问题。
这个问题是解决了。
新问题又来了。呵呵
谢谢美女程序员!
#13
<jsp:getProperty name="mm" property="mId"/>
试试这样<jsp:getProperty name="mm" property=" ${mm.mId}"/>
<jsp:getProperty name="mm" property="mName"/>
试试这样<jsp:getProperty name="mm" property=" ${mm.mName}"/>
<jsp:getProperty name="mm" property="mPassword"/>
试试这样<jsp:getProperty name="mm" property=" ${mm.mPassword}"/>
试试这样<jsp:getProperty name="mm" property=" ${mm.mId}"/>
<jsp:getProperty name="mm" property="mName"/>
试试这样<jsp:getProperty name="mm" property=" ${mm.mName}"/>
<jsp:getProperty name="mm" property="mPassword"/>
试试这样<jsp:getProperty name="mm" property=" ${mm.mPassword}"/>
#14
当前结贴
新问题,再开贴
新问题,再开贴
#15
这样可以。这样写出来了。谢谢.
谢谢大家