在我的action里有这么一段代码:       if(ed_dao.findisSet(lession, chapter, difflevel))
  //findisSet(lession, chapter, difflevel)的功能是根据lession,chapter,difflevel来查找数据库里面的东西
     找到返回true
{
request.setAttribute("isSet", "yes");

if("yes".equals(request.getAttribute("isupdate")))
ed_dao.updateExamDiff(ed);
}

else{
request.setAttribute("isSet", "no");
ed_dao.insertExamDiff(ed);
}
现在我要根据request.setAttribute("isSet", "yes")在JSP页面上取值request.getAttribute("isSet")判断lession,chapter,difflevel组合的内容是否已经设置过,如果设置过了就弹出对话框提示要不要覆盖之前的内容
我在JSP页面上这样写:
 
<%
if("yes".equals(request.getAttribute("isSet")))
{
%>
<javascript language="javascript">
 function newwin()
 {
   if(confirm("已经设置过,是否覆盖?"))
   {
   <%
    request.setAttribute("isuptate","true");
    %>
   }
 } 
</javascript>
<%
}
%> 请各位帮我看看,这样对不对呢?
 在线等待解答
   谢谢

解决方案 »

  1.   

    你首先是从action 到页面,还是从页面到action 啊从action 到页面 
    if("yes".equals(request.getAttribute("isupdate"))) 
    ed_dao.updateExamDiff(ed); 

    这里不会设值从页面到action 
    if("yes".equals(request.getAttribute("isSet"))) 
    这里不会进来 讲清楚 点,等我回家我们一起讨论下
      

  2.   

    你是用post 还是 get  提交啊?
    if(confirm("已经设置过,是否覆盖?")) 
      { 
      <% 
        request.setAttribute("isuptate","true"); 
        %> 
    在这里设置 ,如果下次再提交的话到了action 后都不是一个请求了,所以在action 是拿不到值的,
      

  3.   

      if(confirm("已经设置过,是否覆盖?")) 
      { 
      <% 
        request.setAttribute("isuptate","true"); 
        %> 你是不 是想,只要拿到  这里设置 的值就可以了啊?
      

  4.   

    其实方法有多种,
    1.你可以用在表单写一个hidden用户点击后设置这个hidden的置,在action 进行判断
    2.你可以在表单后面带上一个参数,用户点击confirm 后进行参数设置 ,并在action 进行处理。
    呵呵,办法比较蠢,希望对你有用
      

  5.   


    我想实现的功能是这样的:
    我在页面通过post提交然后用action来处理提交的内容
    在页面需要通过getAttribute来获得action里面的一个值(isSet)request.setAttribute("isSet", "yes"); 
    来说明刚刚提交的内容在数据库中已经有了记录现在获得这个值(isSet)来弹出一个对话框提示用户是否要
    覆盖之前的内容,如果是yes呢就要传一个值(isupdate)到action中
    就是这样的
      

  6.   

    你试下第一种方法吧
    你那样不是在一个请求里面,
     if(confirm("已经设置过,是否覆盖?")) 
      { 
      <% 
        request.setAttribute("isuptate","true"); 
        %> 
      } action  是拿不到 request.getAttribute("isuptate");的值的
    用hidden  最好用啦,呵呵
      

  7.   

    1.
    你在表单中写一个
    <input name="isuptate" type="hidden" value=""/>

    if(confirm("已经设置过,是否覆盖?")) 
      { 
       document.getElementById("isuptate").value="yes";
      }else{
       document.getElementById("isuptate").value="no";
      }
    ===========================
    最后你到action  通过String isuptate = this.getRequest().getParameter("isuptate");再判断 这个isuptate 就可以了,你试下,呵呵