关于EL在JSP内调用RequestScope内置对象报错的问题

先贴出源码

Search.java

public class Search {
    private String dest;
    private String date;

    public void setDest(String e){
        dest = e;
    }

    public void setDate(String d){
        date = d;
    }


    public Result getSearchResult(){
        Result r = SearchDao.SearchInfo(dest, date);
        return r;
    }
}

Search.jsp

<%
	Search s = new Search();
	request.setCharacterEncoding("GBK");
	String dest = request.getParameter("dest");
	String date = request.getParameter("date");
	s.setDate(date);
	s.setDest(dest);
	request.setAttribute("SearchInfo", s);
%>
<html>
<head>
	<title>SearchInfo</title>
</head>
<body>
<p>------------------------------------------</p>
<p>查询信息:</p>
<p>目的地:${requestScope.SearchInfo.dest}</p>
<p>出发日期:${requestScope.SearchInfo.date}</p>
<p>------------------------------------------</p>
<%
	Result result = s.getSearchResult();
	Map[] m = result.getRows();
	for(int i = 0; i<result.getRowCount();i++){
		out.println("<p>航班号:"+m[i].get("id")+"  "+"出发时间:"+m[i].get("tfdate")+"  "+"目的地:"+m[i].get("dest"));
	}
%>
<p>-----查询结束-----</p>
</body>
</html>

今天在做作业的时候想要用EL调用RequestScope内置对象的时候 出现了如下错误

javax.el.PropertyNotFoundException: Property [dest] not readable on type [Bean.Search] 

在优快云上查到发现是所调用对象没有被设置成public

但是更改属性成public之后仍然出现上述错误 

 

进一步查询发现:点击打开链接

 

You have 2 options:

  1. Use boolean instead of Boolean.

  2. Or, rename method isPrimary() to getPrimary()

于是在上述Search类中添加getDate()和getDest() 保留date和dest的private属性

发现可行

 

按照目前测试出来的结果 EL在调用RequestScope内置类对象中的属性时采用的方法是调用getXXX()函数来实现的 

所以想要实现用EL调用内置类对象的属性时一定要有getXXX()类函数

 

------------------------------------------------------2018年11月28日 更新------------------------------------------------------

经过一段时间的学习发现 EL其实是按照JavaBean的方式来读取参数的

所以如果需要使用EL的$表达式读取值的话 最好遵循JavaBean中类的书写规范来书写类

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值