项目是ssh三大框架集成,页面用的是网上下载的QUI页面集成框架做成的,我想在jsp中通过数据库中的坐标数据绘图(如vml),效果如图,代码如下:
package com.xingao.action.template;import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;import javax.annotation.Resource;import org.springframework.stereotype.Controller;import com.xingao.action.XingaoAction;
import com.xingao.dao.TemplateDao;
import com.xingao.entity.T_connection;
import com.xingao.entity.T_node;
import com.xingao.entity.T_role;
import com.xingao.entity.T_template;
import com.xingao.util.XingaoException;
@Controller
public class TemplateSheetAction extends XingaoAction{
@Resource TemplateDao dao;

//input
private int tempId;
//output
private Set<T_node> nodes;//当前模版的节点(缓加载得到)
private T_template template;//当前模板
private Set<T_role> roles;//角色(缓加载得到)
private Set<T_connection> t_connections=new HashSet<T_connection>();//连接


public String execute(){
try {
template=dao.findById(tempId);
 nodes=template.getTNodes();
// nodes=new ArrayList<T_node>(nodes1);//将nodes的set集合变成list集合
 roles=template.getTRoles();
// roles=new ArrayList<T_role>(roles1);//将roles的set集合变成list集合
// //讲有序的集合nodes进行迭代,并通过node找到对应的connection链接
Iterator<T_node> it=nodes.iterator();
while(it.hasNext()){
T_node node=it.next();
System.out.println(node.getName());
Set<T_connection> c=node.getTConnections();
t_connections.addAll(c);
}
return "success";
} catch (XingaoException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "error";
}


}


public int getTempId() {
return tempId;
}
public void setTempId(int tempId) {
this.tempId = tempId;
}
public Set<T_node> getNodes() {
return nodes;
}
public void setNodes(Set<T_node> nodes) {
this.nodes = nodes;
}
public T_template getTemplate() {
return template;
}
public void setTemplate(T_template template) {
this.template = template;
}
public Set<T_role> getRoles() {
return roles;
}
public void setRoles(Set<T_role> roles) {
this.roles = roles;
}
public Set<T_connection> getT_connections() {
return t_connections;
}
public void setT_connections(Set<T_connection> tConnections) {
t_connections = tConnections;
}

}//页面代码:<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@taglib uri="/struts-tags" prefix="s" %><html xmlns:v="urn:schemas-mircrosoft-com:vml">
<head>
<title>鑫高流程管理系统--发起流程</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--框架必需start-->
<script type="text/javascript" src="../js/jquery-1.4.js"></script>
<script type="text/javascript" src="../js/framework.js"></script>
<link href="../css/import_basic.css" rel="stylesheet" type="text/css"/>
<link  rel="stylesheet" type="text/css" id="skin"/>
<!--框架必需end--><!--布局框架start-->
<script type="text/javascript" src="../js/jquery-ui-1.7.2.custom.min.js"></script>
<script type="text/javascript" src="../js/nav/jquery.layout.js"></script>
<script type="text/javascript" src="../js/nav/layout.js"></script>
<!--布局框架end-->
<style>
v\:*{Behavior:url(#default#VML);}
</style>
<script type="text/javascript">
function updateR(obj){
var nev=document.getElementById(obj);
var newValue=nev.value;
if(confirm("确定修改?"))  
       {  
      $.post(
"updateT_RoleDuity.action?dt="+new Date().getTime(),
{"newValue":newValue,"roleId":obj},
function(data){
if(data.ok){
alert("修改成功");
}else{
alert("出错!");
}
},
"json"
);
       }  
}
//删除角色
function deleteThisRole(obj){

if(confirm("确定删除?")){
$.post(
"deleteT_role.action?dt="+new Date().getTime(),
{"roleId":obj},
function(data){
if(data.ok){
$("#"+obj).attr("style","display:none");
}else{
alert("出错!");
}
},
"json"
);

}
}
function updateD(obj){
var nev=document.getElementById(obj);
var newValue=nev.value;
if(confirm("确定修改?"))  
       {  
      $.post(
"updateT_RoleDescription.action?dt="+new Date().getTime(),
{"newValue":newValue,"roleId":obj},
function(data){
if(data.ok){
alert("修改成功");
}else{
alert("出错!");
}
},
"json"
);
       }  

}
function updateT(){
var nev=document.getElementById("ds");
var newValue=nev.value;
if(confirm("确定修改?"))  
       {  
      $.post(
"updateT_Description.action?dt="+new Date().getTime(),
{"newValue":newValue},
function(data){
if(data.ok){
alert("修改成功");
}else{
alert("出错!");
}
},
"json"
);
       }  

}
function addTemplateDes(){ window.open("addTemplateDes.action?dt="+new Date().getTime(),"","height=200, width=560, top=400, left=500,");
}function addRole(){
var ro=document.getElementById("ro").value;
var du=document.getElementById("du").value;
var de=document.getElementById("de").value;

if(!ro||!du||!de){
alert("请输入角色名/职责/描述");
}else{
if(confirm("确定增加?"))  
       {  
      $.post(
"addT_role.action?dt="+new Date().getTime(),
{"role":ro,"duty":du,"description":de},
function(data){
if(data.ok){
alert("增加成功!");
window.location.reload(); 
}else{
alert("出错!");
}
},
"json"
);
       }
       }  

}
function ad(){
$("#ad").attr("style","display:''");
}
</script>
</head>
<body>  
<div class="ui-layout-center" style="text-align: center;">
        <div class="content">
<div id="main">

<div id="content" style="overflow-x: auto; overflow-y: auto;">
<br/>
<div id="wdes">
<h1>${template.name }<input  style=" font-weight: bold;font-family: 楷书 ; color:#3c0; height: 30px; margin-left: 20px;" type="button" value="发起此流程" onclick="location.href='fenperiUsers.action'"/></h1>
<!----------------------------------- 流程图部分 -------------------------------- -->

<div id="flowP" style="overflow-x: auto; overflow-y:auto; width: 1070px; height:300px;">

<v:group id="group1" style="WIDTH:800px;HEIGHT:900px;"coordsize="900,800">
<v:line from="100,100" to="200,200" style="psition:relative;">
<v:stroke EndArrow="Classic"/>
</v:line>
<s:iterator value="t_connections" id="conn">
<v:line from="${conn.lineStartPointX },${conn.lineStartPointY }" to="${conn.lineEndPointX },${conn.lineEndPointY }" style="psition:relative;">
<v:stroke EndArrow="Classic"/>
</v:line> 
</s:iterator>
<s:iterator value="nodes" id="node">
<s:if test="#node.type==0">
<v:oval  style="position:relative;left:${node.left };top:${node.top };width:${node.width };height:${node.height }" fillcolor="#9f9" >
<v:TextBox>${node.name }</v:TextBox>
</v:oval>
</s:if>
<s:if test="#node.type==3">
<v:oval   style="position:relative;left:${node.left };top:${node.top };width:${node.width };height:${node.height }" fillcolor="#9f9" >
<v:TextBox>${node.name }</v:TextBox>
</v:oval>

</s:if>
<s:if test="#node.type==1">
<v:Rect  style="position:relative;left:${node.left };top:${node.top };width:${node.width };height:${node.height }" fillcolor="#fc3">
<v:TextBox>${node.name }</v:TextBox>
</v:Rect>
</s:if>
</s:iterator> </v:group>
<br/>
</div>

<!------------------------------------------------ 流程描述部分  -------------------------------------------->
<br/>
<a style="font-size: 14;font-weight: bold;">流程描述</a>
<hr style="width:100px";/>
<br/>
<s:set name="desc" value="template.description"/>
<div>
<s:if test="template.description==null">
<a style="color:#D4D0C8;">[无流程描述]</a>
</s:if>
<s:else>
<div style=" margin-left:150px;font-size: 14px;width: 800px;height:200px;text-align: left;overflow-x: auto; overflow-y: auto;">
<br/>
${template.description }
</div>
</s:else>

</div>


<br/>
<br/>

</div>

<!-- ----------------------------------------模板角色部分------------------------------------------ -->
<a style="font-size: 14;font-weight: bold;">此模板所有的角色:</a>
<s:iterator value="roles" var="rs">
<a>${rs.name }</a>
</s:iterator>
<br/>
<br/>
<input  type="button" value="发起此流程" onclick="location.href='fenperiUsers.action'" style="width: 200px;height: 80px; font-size: 30px; font-weight: bold;font-family: 楷书 ; color:#3c0;"/>
<br/>
<br/>
</div>
</div>
</div>
</div>
</html>QUI集成框架的页面无法正常显示,普通的jsp页面就可以显示,应该是QUI这个框架不兼容vml吧,但是我还是想要vml那样的效果,大神们给点帮助吧。jsp