我定义了很多私有(private)变量,并且还定义了 getter/setter 方法,然后我使用表达式语言在 jsp 页面中访问这些变量。但是如何在 jsp 页面中访问私有(private)定义的变量? 我的java bean代码是- 变量是
private String beam_current;
private String beam_energy;
private String st4_vs6_bag1_rb;
private String st4_vs6_bag2_rb;
private String st4_vs6_bag3_rb;
private String st4_vs6_bag4_rb;
private String st4_vs6_bag5_rb;
private String st4_vs6_bag6_rb;
private String st4_vs6_bag7_rb;
private String st4_vs6_bag8_rb;
private String st4_vs6_bag9_rb;
设置方法用作-
while(rs.next())
{
Vacc_vs6 ref_drop=new Vacc_vs6();
ref_drop.setLogtime(rs.getString(1));
ref_drop.setBeam_current(rs.getString(2));
ref_drop.setBeam_energy(rs.getString(3));
ref_drop.setst4_vs6_bag1_rb(rs.getString(4));
ref_drop.setst4_vs6_bag2_rb(rs.getString(5));
ref_drop.setst4_vs6_bag3_rb(rs.getString(6));
ref_drop.setst4_vs6_bag4_rb(rs.getString(7));
ref_drop.setst4_vs6_bag5_rb(rs.getString(8));
ref_drop.setst4_vs6_bag6_rb(rs.getString(9));
ref_drop.setst4_vs6_bag7_rb(rs.getString(10));
ref_drop.setst4_vs6_bag8_rb(rs.getString(11));
代码中定义了 getter 和 setter 方法 -
public String getBeam_current() {
return beam_current;
}
public void setBeam_current(String string) {
this.beam_current = string;
}
现在我的jsp是:-
<c:forEach var="r" items="${ref.refernece(param.ref_logtime)}"
begin="${count}" end="${count}">
<tr bgcolor="darkgray ">
<td><c:out value="${r.logtime}"></c:out></td>
<td>
<c:choose><c:when test="${(r.beam_current) ne 0}">
我的问题是,当变量 beam_current 和 logtime 在 java 类中定义为私有(private)时,我如何能够访问它们?
最佳答案
简单来说,以下 EL 表达式
${r.beam_current}
基本上解决为
Object r = servletRequest.getAttribute("r"); // or from page, session, or application attributes
Class<?> clazz = r.getClass();
Method getter = clazz.getMethod(resolveName("beam_current")); // where resolvedName generates a getter name through Java Bean property naming conventions
String result = getter.invoke(r);
然后将结果
写入ServletResponse
的OutputStream
。
关于java - javabean中声明为私有(private)的变量如何被jsp访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28978919/