当前位置:编程学习 > JAVA >>

为什么jsp页面只能提交一次啊?必须重新启动tomcat后又才能提交,重启一次提交一次,否则第二次提交没有任何错误,没有反应

第二次提交没有任何反应,action中的第一句就是system.out.println(),该语句未能打印出东西,可见未执行。下面贴jsp代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>

<script type="text/javascript" src="${pageContext.request.contextPath }/dwr/interface/dwrPro.js"></script>
<script type='text/javascript' src='${pageContext.request.contextPath }/dwr/engine.js'></script>
<script type='text/javascript' src='${pageContext.request.contextPath }/dwr/util.js'></script>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
    <title>花景百货-添加商品</title>

   <link rel="stylesheet" href="util/style.css" type="text/css"></link>
    <script type="text/javascript" src="/util/my.js"></script>
    
    <script language="javascript" type="text/javascript">
     /* 添加专柜时的验证提交方法 */
function proAdd(){
        //alert("proOp");
        //var labelCode=document.getElementById("labelCode").value;
var labelName=document.getElementById("labelName").value;
var code=document.getElementById("code").value;
var proName=document.getElementById("proName").value;
var price=document.getElementById("price").value;
var stock=document.getElementById("stock").value;
var sale=document.getElementById("sale").value;
var falg=document.getElementById("falg").value;
var info=document.getElementById("Vinfo");
/**
if(labelCode==""){
info.innerHTML="品牌编码不能为空";
return;
}*/
if(code==""){
info.innerHTML="商品编码不能为空";
return;
}else if(labelName==""){
info.innerHTML="品牌名称不能为空";
return;
}else if(proName==""){
//alert(labelName.length);
info.innerHTML="商品名称不能为空";
return;
}else if(price==""){
info.innerHTML="吊牌价格不能为空";
return;
}else if(stock==0){
info.innerHTML="首次进货数量不能为空";
return;
}else if(stock<0){
info.innerHTML="首次进货数量不能小于0";
return;
}else if(stock*1!=stock){
info.innerHTML="首次进货数量必须为正整数";
return;
}else if(sale==0){
info.innerHTML="折扣不能为空";
return;
}else if(sale<0 || sale>10){
info.innerHTML="折扣输入值不正确";
return;
}else if(falg==1){
info.innerHTML=proName+" 该商品编码已存在,请重新输入!";
return;
}
alert(proName);
document.forms[0].submit()
}

//仅允许输入数字
function checkNumber() {
    //判断输入字符的keyCode,数字在48到57之间,超出部分返回false
    if ((event.keyCode >= 48) && (event.keyCode <= 57)) {
        event.returnValue = true;
    } else {
        event.returnValue = false;
    }
}

//dwr添加商品信息时,判断输入的商品代码及品牌代码是否正确
function dwrProAdd(){
//var labelCode=document.getElementById("labelCode").value;
var code=document.getElementById("code").value;
var info=document.getElementById("Vinfo");
if(code==""){
info.innerHTML="请输入商品编码";
return;
}else{
var arr=code.split("-");
dwrPro.dwrProAdd(arr[0],arr[1],meg);
}
}

function meg(info){
if(info=="error1"){
var info=document.getElementById("Vinfo");
document.getElementById("falg").value=0;
var falg=document.getElementById("falg").value=1;
alert("输入的品牌代码不存在,请核对!")

}else if(info=="error2"){
var falg=document.getElementById("falg").value=1;
alert("该商品编码已存在!");
}
else{
var falg=document.getElementById("falg").value=0;
document.getElementById("labelName").value=info;
}
}

    </script>
    
  </head>
  
<body>
<table style="padding-left:4px; padding-top:4px; padding-right:4px;" width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>
     <table width="100%" border="0" cellpadding="0" cellspacing="0" style="border:#BBDAF7 1px solid; margin-bottom:4px;">
      <tr>
        <td style="padding-left:5px;" height="22" bgcolor="#E3EDF4" class="lv2">当前位置:商品管理-->商品添加</td>
      </tr>
     </table>
    <form action="proAdd.action" method="post">
     <input type="hidden" name="falg" value="0"/>
    <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="9fcfe6" class="twoMenu">
      <tr>
        <td width="150" height="30" background="../images/tabTitle.jpg"></td>
<td align="left"><span style="color:red;font-size:12px;" id="Vinfo"></span></td>
      </tr>
      <tr height="30" bgcolor="#D4EEFB" class="lv2">
        <td width="150"><span style="color:red;">*</span>商品编码</td>
        <td><input name="code" type="text" id="code" onblur="dwrProAdd()" size="40" value="${pro.code}"></td>
      </tr>
      <tr height="32" bgcolor="#D4EEFB" class="lv2">
        <td width="150"><span style="color:red;"></span>品牌名称</td>
        <td><input name="labelName" type="text" id="labelName" size="40" readonly="true" value="${pro.labelName}" /></td>
      </tr>
       <tr height="32" bgcolor="#D4EEFB" class="lv2">
        <td width="150"><span style="color:red;">*</span>商品名称</td>
        <td><input name="proName" type="text" id="proName" size="40" value="${pro.proName}"/></td>
      </tr>

      <tr height="32" bgcolor="#D4EEFB" class="lv2">
        <td width="150"><span style="color:red;">*</span>吊牌价格</td>
        <td><input name="price" type="text" id="price" size="40" value="${pro.price}" onkeypress="checkNumber()"/></td>
      </tr>       
      <tr height="32" bgcolor="#D4EEFB" class="lv2">
        <td width="150"><span style="color:red;">*</span>首次进货</td>
        <td><input name="stock" type="text" id="stock" size="40" value="${pro.stock}" onkeypress="checkNumber()"/></td>
      </tr>       
      <tr height="32" bgcolor="#D4EEFB" class="lv2">
        <td width="150"><span style="color:red;">*</span>当前折扣</td>
        <td><input name="sale" type="text" id="sale" size="40" value="${pro.sale}" onkeypress="checkNumber()"/></td>
      </tr>
      
      <tr height="22" bgcolor="#D4EEFB" class="lv2">
        <td> </td>
        <td height="40"><input type="button" onclick="proAdd();" id="button" value=" 提 交 " />
              <s:property value="info" escape="false"/>
        </td>
      </tr>
</form>  
   </table></td>
  </tr>
</table>
</body>
</html>

下面贴action方法中的内容:
public String proAdd(){
   System.out.println("----------proAdd()=" + action);
try{
//封装对象
pro.setCode(code);
pro.setProName(proName);
pro.setPrice(price);
pro.setLabelCode(labelCode);
pro.setLabelName(labelName);
pro.setSortId(sortId);
pro.setCreateTime(Date_String.dateToString2(new Date()));
pro.setStock(stock);
pro.setSale(sale);
pro.setStatus(status);
//biz方法插入一条商品信息记录
proBiz.proAdd(pro);
//添加一个商品入库记录
// prointo.setNum(stock);
// prointo.setProCode(code);
// prointo.setStock(stock);
//session中的当前用户id
int userId = ((Userinfo)ActionContext.getContext().getSession().get("user")).getId();
//写系统日志
userOpBiz.saveLog(userId, "添加单品:" + code + ";首次进货" + stock + "件");
info = "<font color='green'>商品信息添加操作执行成功!</font>";

//pro = null;
return SUCCESS;
}catch(Exception e){
Log4jClass.log("添加商品信息时出错...",e);
e.printStackTrace();
info = "<font color='red'>添加商品信息操作执行失败!</font>";
return ERROR;
}
}

下面是struts2配置:
 <!-- 专柜商品的action -->
        <action name="proAdd" class="proAddAction" method="proAdd">
         <result name="error">/proAdd.jsp</result>
            <result name="success">/proAdd.jsp</result> 
        </action>
        <!-- dwr在添加商品信息时先查询所属专柜信息的action -->
        <action name="dwrProAdd" class="dwrProAdd" method="dwrProAdd"></action>

--------------------编程问答-------------------- 困扰多天,耽误了项目进度,请各位高人指点!小妹不甚感激!!! --------------------编程问答-------------------- 呵呵,
<form action="proAdd.action" method="post">
改成如下形式:
<form action="proAdd.proAdd.action" method="post">

你的proAdd.action会使Struts执行这个类的execute方法(或许是从其他类中继承来的)。
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,