1

因此,我在 jsp 页面中有一个表,它显示通过转发到页面的 ArrayList 从数据库中获取的数据。表格的每一行都有一个与之对应的单选按钮。现在,我想访问行中的元素(ArrayList 的成员选择相应的单选按钮,然后单击“编辑”按钮)关于如何实现这一点的任何想法将不胜感激。这是我的代码进行一些介绍。

<% 
   ArrayList<requestbean> reqjsp = new ArrayList<requestbean>();
   reqjsp = (ArrayList<requestbean>) (request.getAttribute("reqdb"));
%>

<script type ="text/javascript">
   function x() {
      var ele = document.getElementsByName('reqradio');
      var i = ele.length;
      for ( var j = 0; j < i; j++ ) {
         if ( ele[j].checked ) {
             document.getElementById("edireq").disabled = false;
             alert('request ' + ( j + 1 ) + ' selected');
             //Here is where the functionality is desired to access reqjsp.get(j)
        }      
     }
  }
</script> 
<input type="button" name="edireq" id="edireq" onclick="x()" value="Edit Request">

这些是我表中的几列。

<%
 for ( int i = 0; i < reqjsp.size(); i++ ) {
%>
  <tr> 
    <td> <input type="radio" name="reqradio" id="req<%=(i+1) %>"></td> 
    <td><%= reqjsp.get(i).getRequestid() %></td>            
    <td><%= reqjsp.get(i).getRequestor() %></td>  
    <td><%= reqjsp.get(i).getApprover() %></td>              
  </tr> 
<%} %>
4

1 回答 1

0

您可以使用 JSP 代码生成一个 JavaScript 数组,然后在您的 JavaScript 中访问这个生成的变量。但是您无法以这种方式更改底层 Java 对象中的任何内容:

<script type ="text/javascript">
<% 
   ArrayList<requestbean> reqjsp = new ArrayList<requestbean>();
   reqjsp = (ArrayList<requestbean>) (request.getAttribute("reqdb"));
%>
var myJsArray = new Array();
<%
   for ( int i = 0; i < reqjsp.size(); i++ ) {
%>
myJsArray.push('<%= reqjsp.get(i) %>');
<%
   }
%>

// JavaScript code to access the myJsArray array

</script>

JSP 代码会生成这样的代码:

<script type ="text/javascript">
var myJsArray = new Array();
myJsArray.push('value1');
myJsArray.push('value2');
myJsArray.push('value3');

// JavaScript code to access the myJsArray array

</script>
于 2013-09-19T06:19:32.880 回答