Action和JSP之间数据交互失败

问题:在JSP页面总是访问不到相应Action中的数据,在确定了方法和字段都没错之外,对象也有值,但是在JSP页面就是不能访问到数据,在“开发者工具”的“查看器”中甚至找不到这行代码!

                                                                                    图一.未能访问到试题题目

                                                                                    图二.寻找原因

但是在我的代码中是有<c:forEach></forEach>:

<form id="myForm" action="oeexam!add" method="post">
			<input type="text" name="oeexam.oestudent.userName" value="${currentUser.userName }">
			<input type="text" name="oeexam.oepaper.id" value="${oepaper.id }">
			<c:forEach var="s" items="${soequestionList }" varStatus="status">
				<strong>[&nbsp;${status.index+1 }&nbsp;]&nbsp;${s.subject }</strong><br/><br/>
				
			</c:forEach>
			nihao
			<div align="center">
				<button type="submit" style="width:120px;color:#FFFFFF;background-color: #000000;border-radius: 5px;padding:5px;text-align: center;font-size: 16px;cursor: pointer;overflow: hidden;">交卷</button>
			</div>
			
		</form>

解决方法:检查代码,最后发现是在Action中后来定义的几个属性我没有生成get()和set()方法!

                                                                                    图三.发现原因,解决

生成get()和set()方法,程序运行成功!

                                                                                    图四.正常运行

总结一下:

什么是getter()和setter()方法?有何作用?

        get()和set()就是java中的封装技术!在javaBean中或是其他需要相应属性的类中,我们一般定义的属性都是“private”私有化的,那么在其他类文件就不能引用(使用)它。使用“private”是把被使用的变量保护起来,使别人不知道这个变量的名称是什么,有保护的作用。

        而get()和set()就是在和“private”私有化的变量在同一个类文件中,get()和set()是“public”共有的,也就是说这两个方法是可以被在其他类文件中使用的。set()方法的意思是定义一个方法含一个参数,把所含有的这个参数(后期自己设置)赋给你需要私有化的变量(在当前类中设置),相当于充当媒介,外界想要改变已经“private”私有化的变量,必须要在其他类文件中给方法set一个参数,通过set()变量来更改。get()则是获取这个私有化的变量值。是定义了一个带返回类型的方法,这个返回类型就是已经被你私有化变量的类型。以题目为例,你私有化了String类型的name,那么get()方法的返回类型就是String类型,同时返回当前类中name的值。这样一来在其他类文件中,可以通过set()方法来给和更改另一个类中的加密变量值,可以通过get()来获取另一个类中加密的变量值,而这个被加密的变量则变量名始终没有人知道。

   

java中的封装”是把过程和数据包围起来,对数据的访问只能通过已定义的接口。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。封装是一种信息隐藏技术,在java中通过关键字private,protected和public实现封装。

封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性。

 

 

所以,我们在开发过程中需要仔细,很多时候出现的bug就是我们的马虎造成的!像这种类似的问题,比如在页面中哪个字段名称你弄错了,一旦出错了将会很麻烦!而且在页面中错误也不好查找!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值