原文件是这样的<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.sunbor.com/tags/sunbor" prefix="sunbor"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<html>
<head>
<script>
function openNewDiv() {
  // 新激活图层
  var newDiv = document.createElement("div");
  newDiv.id = "newDiv";
  newDiv.style.position = "absolute";
  newDiv.style.zIndex = "9999";
  newDiv.style.width = "300px";
  newDiv.style.height = "200px";
  newDiv.style.top = "30px";
  newDiv.style.left = "30px"; // 屏幕居中
  newDiv.style.background = "#EFEFEF";
  newDiv.style.border = "1px solid #860001";
  newDiv.style.padding = "5px";
  newDiv.innerHTML="<s:textfield label=\'姓名\' name=\'employee.name\'/>";
   document.body.appendChild(newDiv);  var newA = document.createElement("a");
  newA.href = "#";
  newA.innerHTML = "关闭激活层";
  newA.onclick = function() {document.body.removeChild(newDiv);return false;}
  newDiv.appendChild(newA);
}
</script>
</head>
<body>
<a href="#" onclick="openNewDiv()">查询条件</a>
<br/></body>
</html>

解决方案 »

  1.   

    你直接修改成普通的HTML的文本框就行了么!
      

  2.   

    因为需要 所以一定要用strust2标签
      

  3.   

    那么楼主是不是想得到strust2标签的值啊。。
    如果是这样的话。
    可以在页面加载的时候。。把strust2标签的值保存到一个全局的js变量里面
    然后在js函数里使用这个全局的js变量里面。。
      

  4.   

    try it:      newDiv.innerHTML=" <input type=\'text\' label=\'姓名\' name=\'${employee.name}\'/>"; 
      

  5.   

    <s:textfield label=\'姓名\' name=\'employee.name\'/>
    改成
    <s:textfield label=“姓名” name=“employee.name”/>这里的引号要用双引号,不用转意字符不用关js编辑器报错。
    因为这不管js的事情,
    是标签需要双引号要不就把最外层变成单引号。好像大概差不多是这个原因,呵呵good luck
      

  6.   

    照你上面那种说法 错误更严重 500错误 javax.servlet.ServletException: /age.jsp(48,40) 缺少引号newDiv.innerHTML='<s:textfield label=“姓名” name=“employee.name”/>';
      

  7.   

    那就不是这个问题了呗,呵呵lz可以看看tomcat下面的work目录下面的这个jsp对应的目录的编译成java程序的...程序
    (定语好长)看看这句话被编译成java后是什么样子good luck
      

  8.   

    编译出来是  out.write("  newDiv.innerHTML='"); 这样的 问什么啊
      

  9.   

    waitwait
    <s:field 的用法错了吧?是不是应该是
    <s:textfield label=“姓名” value=“${employee.name}”/> name是指的Form字段的名字,和Action类的属性对应的,
    没放在form里是不是就...再蒙good luck
      

  10.   

    JS中不能使用struts标签。。?
    吹牛吧你改成这样newDiv.innerHTML =" <s:textfield label=\“姓名\” name=\“employee.name\”/>"; 
      

  11.   

    还是一样的,好像struts2标签根本就没引用进来
      

  12.   

    var friendIds = '<s:property value="#session.friendIds" default="0"/>';1楼 脚本中可以用struts标签。。lz: 如果你用
    newDiv.innerHTML="<s:textfield label='姓名' name='employee.name'/>"; 我想是不是不需要转译啊?
    还有就是你要注意你的employee.name是否属性值正确。先把转译的去掉试试吧。
      

  13.   

    你这样试试呢?
    <s:textfield label='姓名' name='name' theme='simple'></s:textfield>
      

  14.   

    都不行啊,
    org.apache.jasper.JasperException: Unable to load class for JSP
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413)
    看样子js中不可以用struts2标签吧
      

  15.   

    不可能,
    到了js的范畴,标签这种东西已经变成字符串什么的了要不你打开jar包,看看META-INF目录下有没有...稍等lz用的什么servlet容器?
    servlet 2.4的版本以上才能自动从jar里面的META-INF读取tld信息,
    如果是tomcat的话,5.5以下的要在web.xml里面加上taglib的定义部分lz自己看看吧不过都struts2了,应该是个新版本的servlet容器吧good luck
      

  16.   

    如果你用是用 <script src="demo.js"></script>
    在 demo.js 里面用 struts 2 标签是肯定不行的. 只能将值放在 hidden 中,demo.js 去获取这些 hidden
    在当前页面的 Javascript 代码中使用 struts 2 标签是没有问题的.这个么小问题,自己再找找原因
      

  17.   

    newDiv.innerHTML=" <s:textfield label=\'姓名\' name=\'employee.name\'/>"; 
    改为
    newDiv.innerHTML=" <s:textfield label="姓名" name="employee.name"/> ";原因: <s:textfield label="姓名" name="employee.name"/>是在服务器端编译的 java中字符串用双引号 不需要转义符而:newDiv.innerHTML="***" 是在浏览器中编译的
      

  18.   


    其实不用,
    把js写成jsp就行了
    然后<script src="demo.jsp"> </script>
    那个jsp返回的是js代码的“字符串”就行了,
    和<img标签差不多的道理哈哈跑题了bdgood luck
      

  19.   

    问题差不多解决啦,是这样的newDiv.innerHTML=<s:form action="find" method="get"><s:textfield label="姓名" name="employee.name"/><s:textfield label="地址" name="employee.address"/><s:checkbox name="is" fieldValue="true" label="是否备注" onclick="res();"/><s:textfield name="employee.re" id="re"/><s:submit value="确定"/></s:form>;但是它只能到火狐上运行,如果到ie上运行的话还回报脚本错误
      

  20.   

    那还是源来的textfield没有包裹在form里面报的错。吧?good luck
      

  21.   

    谁说js里边不能用structs标签?!我就用了
      

  22.   

    我现在的麻烦就是structs标签里边如何调用js的变量!!!
    找了半天没人尝试