当前位置:编程学习 > JAVA >>

运行JSP页面出错:Can't find a method to write property 'message' of type 'java.lang.Str

 
运行JSP页面出错:

org.apache.jasper.JasperException: Can't find a method to write property 'message' of type 'java.lang.String' in a bean of type 'com.inspiresky.bean.Hello'
org.apache.jasper.runtime.JspRuntimeLibrary.internalIntrospecthelper(JspRuntimeLibrary.java:370)
org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(JspRuntimeLibrary.java:308)
org.apache.jsp.mytest_jsp._jspService(mytest_jsp.java:66)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.


 我一共建了2个文件:

 Hello.java: 

 package com.inspiresky.bean;

public class Hello {
  private String message = "12345";
  public String getMessage(){
  return message;
  
  }
  public void setMessgae(String message){
  this.message =message;
  }
}


  mytest.jsp:

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<jsp:useBean id="hello" class="com.inspiresky.bean.Hello" scope="page" />
<jsp:setProperty name="hello" property="message" value="12345"/>

<html>
  <head>
   
    
    <title>My JSP 'mytest.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

  </head>
  
  <body>
    <jsp:getProperty name="hello" property="message" /><br>
    This is my JSP page.<br>
  </body>
</html>


 请问大家是什么问题? --------------------编程问答-------------------- 没有 message属性 --------------------编程问答-------------------- 都没有给它setProperty --------------------编程问答--------------------  
  我一共建了2个文件:

 Hello.java:  

 package com.inspiresky.bean;

public class Hello {
  private String message = "12345";
  public String getMessage(){
return message;
  
  }
  public void setMessgae(String message){
this.message =message;
  }
}


  mytest.jsp:

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<jsp:useBean id="hello" class="com.inspiresky.bean.Hello" scope="page" />
<jsp:setProperty name="hello" property="message" value="12345"/><html>
  <head>
    
    
  <title>My JSP 'mytest.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">   
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

  </head>
   
  <body>
  <jsp:getProperty name="hello" property="message" /><br>
  This is my JSP page.<br>
  </body>
</html>


 我标红的地方不是message属性 还有  setProperty 吗?
  --------------------编程问答-------------------- 你setProperty的时候对象弄错了吧   设置的不是message这个属性而是hello这个对象 --------------------编程问答-------------------- 那应该怎么改呢? --------------------编程问答-------------------- <jsp:getProperty name="hello" property="message" /><br>

name 应该对应的是 类里的属性吧
也就是 message --------------------编程问答--------------------  那你的意思是说,name="message"  property="message"?

 name 和 property 都是message? --------------------编程问答-------------------- 后台是按name属性接收值的。。所以name改成message就Ok了。 --------------------编程问答--------------------  那还用后面的property 干嘛? --------------------编程问答-------------------- 这个值一般是用于对对象的属性赋值的。。如果你Name是一个对象,property里面指出它的属性名。在后台就会自动对这个对象的属性做赋值。应该是这样的 --------------------编程问答-------------------- Hello.java 中,

   public void setMessgae(String message){
       this.message =message;
   }

这个方法的名字出错 , 不是  setMessgae ,  而是 setMessage 
然后最好加上 无参构造函数,使当tomcat或者其他容器加载创建时不会出错!


--------------------编程问答-------------------- 同意11楼
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,