在学习王勇的drp教程中 碰到的问题.

解决方案 »

  1.   

    只要把out.println("添加成功").这条语句删除后.页面中的css和js 又正常了.
     现在都想到疯了
      

  2.   

    <%@ page language="java" pageEncoding="GB18030"%>
    <%@ page import="java.util.*" %>
    <%@ page import="com.qweone.drp.util.*" %>
    <%@ page import="com.qweone.drp.util.datadict.manager.*" %>
    <%@ page import="com.qweone.drp.util.datadict.domain.*" %>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    int pid = Integer.parseInt(request.getParameter("pid"));
    String command = request.getParameter("command");out.println("修改成功");List<ClientLevel> clientLevelList =  DataDictManager.getInstance().findClientLevelList();%>
    <html>
    <head>
        <base href="<%=basePath%>">
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
    <title>添加分销商</title>
    <link rel="stylesheet" href="style/drp.css">
    <script src="script/client_validate.js"></script>
    <script language="JavaScript">
    function validateClientId(field){
    if(trim(field.value) != ""){
    //表示当前浏览器不是ie,如ns,firefox
    if(window.XMLHttpRequest) {
    xmlHttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    var url = "servlet/ClientIdValidateServlet?clientId=" + trim(field.value) +"&time=" + new Date().getTime();
    xmlHttp.open("get",url,true);
    xmlHttp.onreadystatechange = function (){
    if(xmlHttp.readyState == 4){
    if(xmlHttp.status == 200){
    if(trim(xmlHttp.responseText) != ""){
    document.getElementById("spanClientId").innerHTML = "<font color='red'>" + xmlHttp.responseText + "</font>";
    }else{
    document.getElementById("spanClientId").innerHTML = "";
    }
    }else{
    alert("请求失败,错误码:" + xmlHttp.status);
    }
    }
    }
    xmlHttp.send(null);
    }else{
    document.getElementById("spanClientId").innerHTML = "<font color='red'>分销商代码不能为空</font>";
    }
    }

    function validateClientName(field){
    if(trim(field.value) ==""){
    document.getElementById("spanClientName").innerHTML = "<font color='red'>分销商名称不能为空</font>"
    }else{
    document.getElementById("spanClientName").innerHTML = "";
    }
    }

    function validateForm(form){
    if(document.getElementById("spanClientId").innerHTML != ""){
    alert("分销商代码不能为空");
    document.getElementById("clientId").focus();
    return false;
    }
    if(document.getElementById("spanClientName").innerHTML != ""){
    alert("分销商名称不能为空");
    document.getElementById("clientName").focus();
    return false;
    }
    return true;
    }
    </script>
    </head>

    <body class="body1">
    <form action="basedata/client_add.jsp"  method="post" onsubmit="return validateForm(this)">
    <input type="hidden" name="command" value="<%= Constants.ADD %>"> 
    <input  type="hidden" id="pid" name="pid" value="<%= pid %>">
      

  3.   

    我在输出html页面前.先输出了.添加成功的这句话.
    接下面的.html中的css 和js 就实效了.
    删除这句话.有好了.
    到底是什么问题呢
      

  4.   

    应该是路径的问题。跳转之后 CSS 引用的路径 可以 变化了 。
      

  5.   

    我是提交到自身页面.要说是路径问题.那么删除那句out.println("添加成功")后.页面提交什么的都正常.
      

  6.   

    有人说是
    就是输出流的问题...request页面,在页面之前不能有输出...如果要输出,就要把整个页面都放倒out输出里...
    可是.我是初学者.不大懂什么意思.
      

  7.   

    楼主试试导入css和js的时候前面都加上web工程名,就是绝对路径
      

  8.   

     out.println("修改成功");楼主的意思是 提交后页面就只有 修改成功 四个字了吧 ! 这个不是废话吗?out.println("修改成功"); 就是就响应返回给一个页面了?你改成这样吧 out.println("<script>alert(\"修改成功\");<script/>");
      

  9.   


    ----------------------------
    不是的.我是把页面提交到自身.
    提交的页面后.页面里的html控件都能显示.就是css和js实效了.
      

  10.   


    ---------------------------------
    我使用的<base href="<%=basePath%>"> 了.再加绝对路径.不行吧
      

  11.   

    页面字符流的问题,改成System.out.println("");看看
      

  12.   

    out.println();
    运行后会跳转到新的页面去。并输出中间的内容
    换成System.out.println()问题解决ps:out是jsp中的一个内置对象,相当于java.io.Writer的一个拓展