java - javabean中声明为私有(private)的变量如何被jsp访问

标签 java private

我定义了很多私有(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);

然后将结果写入ServletResponseOutputStream

关于java - javabean中声明为私有(private)的变量如何被jsp访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28978919/

相关文章:

java - 如何在 Camunda-bpm 中结束流程实例?

java - 是什么导致了 java.lang.ArrayIndexOutOfBoundsException 以及如何防止它?

java - 如何获取公共(public)类中注入(inject)的bean的值

delphi - Delphi中单元文件的使用方法

java - 设计决策 : Why and when to make an interface private?

java - 使用 selenium 将元素滚动到屏幕中间

java - 如何从 windowsazure mobileservices 获取文本

Javascript 模拟真正的私有(private)变量并使用 getter/setter 管理它

c++ - 在 C++ 中隐藏私有(private)方法和成员

android - 向上按钮 Webview 崩溃