原文件是这样的<%@ 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>
<%@ 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>
如果是这样的话。
可以在页面加载的时候。。把strust2标签的值保存到一个全局的js变量里面
然后在js函数里使用这个全局的js变量里面。。
改成
<s:textfield label=“姓名” name=“employee.name”/>这里的引号要用双引号,不用转意字符不用关js编辑器报错。
因为这不管js的事情,
是标签需要双引号要不就把最外层变成单引号。好像大概差不多是这个原因,呵呵good luck
(定语好长)看看这句话被编译成java后是什么样子good luck
<s:field 的用法错了吧?是不是应该是
<s:textfield label=“姓名” value=“${employee.name}”/> name是指的Form字段的名字,和Action类的属性对应的,
没放在form里是不是就...再蒙good luck
吹牛吧你改成这样newDiv.innerHTML =" <s:textfield label=\“姓名\” name=\“employee.name\”/>";
newDiv.innerHTML="<s:textfield label='姓名' name='employee.name'/>"; 我想是不是不需要转译啊?
还有就是你要注意你的employee.name是否属性值正确。先把转译的去掉试试吧。
<s:textfield label='姓名' name='name' theme='simple'></s:textfield>
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标签吧
到了js的范畴,标签这种东西已经变成字符串什么的了要不你打开jar包,看看META-INF目录下有没有...稍等lz用的什么servlet容器?
servlet 2.4的版本以上才能自动从jar里面的META-INF读取tld信息,
如果是tomcat的话,5.5以下的要在web.xml里面加上taglib的定义部分lz自己看看吧不过都struts2了,应该是个新版本的servlet容器吧good luck
在 demo.js 里面用 struts 2 标签是肯定不行的. 只能将值放在 hidden 中,demo.js 去获取这些 hidden
在当前页面的 Javascript 代码中使用 struts 2 标签是没有问题的.这个么小问题,自己再找找原因
改为
newDiv.innerHTML=" <s:textfield label="姓名" name="employee.name"/> ";原因: <s:textfield label="姓名" name="employee.name"/>是在服务器端编译的 java中字符串用双引号 不需要转义符而:newDiv.innerHTML="***" 是在浏览器中编译的
其实不用,
把js写成jsp就行了
然后<script src="demo.jsp"> </script>
那个jsp返回的是js代码的“字符串”就行了,
和<img标签差不多的道理哈哈跑题了bdgood luck
找了半天没人尝试