zoukankan      html  css  js  c++  java
  • Java报错:Unable to find setter method for attribute: [x]

    在学习JavaWeb JSTL与自定义标签时遇到的坑,用的老师给的代码结果直接原地报错:javax.servlet.ServletException: org.apache.jasper.JasperException: /math.jsp (line: [15], column: [0]) Unable to find setter method for attribute: [x], 代码如下

    package com.sirifeng.mytag;
    
    import javax.servlet.jsp.JspWriter;
    import javax.servlet.jsp.tagext.SimpleTagSupport;
    import java.io.IOException;
    
    /**
     * @author SiriFeng
     */
    public class MathTag extends SimpleTagSupport {
    
        double x;
    
        public double getX() {
            return x;
        }
    
        public void setX(String x) {
            double num = 0;
            num = Double.parseDouble(x);
            this.x = num;
        }
    
        @Override
        public void doTag() throws IOException {
            JspWriter out = getJspContext().getOut();
            out.println(x+"的平方根是:"+Math.sqrt(x));
        }
    
    }

    报错说找不到属性x的setter方法,这里看了一下x的属性类型是double,setter方法的属性类型是String,应该是这里出现的问题,我把setter方法改成默认的setter方法后就能正常运行了,修改如下:

    package com.sirifeng.mytag;
    
    import javax.servlet.jsp.JspWriter;
    import javax.servlet.jsp.tagext.SimpleTagSupport;
    import java.io.IOException;
    
    /**
     * @author SiriFeng
     */
    public class MathTag extends SimpleTagSupport {
    
        double x;
    
        public double getX() {
            return x;
        }
    
        public void setX(double x) {
            this.x = x;
        }
    
        @Override
        public void doTag() throws IOException {
            JspWriter out = getJspContext().getOut();
            out.println(x+"的平方根是:"+Math.sqrt(x));
        }
    
    }

     这里有个疑问就是从jsp传过来的值是String,但是这边调用setter方法的参数类型是double,中间哪个过程它自己把类型给转化了?求大佬指点。

  • 相关阅读:
    How can i install ctags in centos 6.4
    [转载] Ubuntu Vim powerline 插件
    Vim 相关网页
    [转载] vim技巧:设置空格和Tab字符可见
    Don't trust cplusplus.com, it's crap. If any, go to cppreference.com.
    Vim yank only 50 lines
    按进程名终止进程
    Shell 脚本 Tips
    Bash 脚本 逐行处理文本文件的内容
    生成并配置https本地证书
  • 原文地址:https://www.cnblogs.com/Fzeng/p/13993729.html
Copyright © 2011-2022 走看看