在WEB界面里,有个“保存”按钮,执行set操作
在set函数里:
function set()
{
      <%
           List<T_lottery> list = T_lottery.getT_lottery();
           for(int i=0;i<list.size();i++)
           {}
      %>
}
问题是:
在打开这个界面的时候,就会执行这个list一行代码,然后在界面上点击“保存”按钮的时候,就不去执行list这行代码了。
现在我想在点击“保存”按钮的时候,先执行list这行代码,我改如何操作呢?
希望大家能多多帮忙!谢谢,最好能些个代码,帮忙解释下,非常感谢了!javaJSlist

解决方案 »

  1.   

    不可行,所谓的jsp页面,在响应请求之后已经被编译为servlet文件了。针对%内代码的编译一定是在页面响应之前的。
    最后用户浏览器接收到的只是编译过的html文本而已。
      

  2.   

    JS在客户端运行,JSP代码在服务器运行,能执行到一块?
      

  3.   

    那通过ajax,jquery这些还能实现?我就是想在点击按钮的时候先去执行一个查询操作,能不能跳转到后台执行,然后再把查询的list的值返回到前端?
      

  4.   

    嗯,得换成json对象,
    用jquery,ajax请求后,返回json,
    遍历json,组织好dom对象,或html,加入到页面显示要么,你就用<jsp: 标签,或在页面用小脚本
      

  5.   

    js调用java是可以的,但两种代码不能混在一起写,必须分开,请看代码:
    RoleAjax.java/**
     * 角色ajax
     * @version 1.0
     */
    @AjaxBean(name = "roleAjax")
    public class RoleAjax extends BaseAjax {

    /**
     * 设置权限
     * @param id 角色ID
     * @param menuIds 菜单id
     * @return String
     */
    @AjaxMethod
    public String menu(Long id, String menuIds) {
    try {// 逻辑代码就不贴了
    System.out.println("角色ID:" + id + "        菜单id:" + menuIds);
    return "操作成功!";
    } catch (Exception e) {
    e.printStackTrace();
    }
    return "操作失败!";
    }}
    role_menu.jsp<script type="text/javascript" src="<m:contextPath/>/mvc/framework/res/js/public.js.php"></script>
      <script type="text/javascript" src="<m:contextPath/>/mvc/framework/ajax/roleAjax.js.php"></script>
      <script type="text/javascript">
    function doMenu() {
            // 用js直接调用java类的方法,传入相应的参数,最后一个参数为回调函数
            // roleAjax就是那个java类的注解,实际上已经在页面产生了一个js对象
    roleAjax.menu(1, "23,25,36,48", function(result) {
    alert(result);// 这个结果就是java方法的返回值
    });
    }
      </script>
      

  6.   

    你也可以用dwr ,
    我这有两个demo
    http://download.csdn.net/detail/zuxianghuang/4158486
      

  7.   

    如果需要的是你的list里的内容在客户端js可用,可以将其中的数据保存在一个json格式的string里,在显示页面时将此json付给一个js端变量,之后在js端就可以用了
      

  8.   

    楼主的函数是放在body里面的,打开页面的时候就执行了应该把js和java代码放在body外面
      

  9.   

    理解错了,这种情况需要访问一个url地址,把值传过来