新人初学,使用jsp和XML出现错误,望高手指教
小幺鸡 2011-11-27 03:54:28 主要是AddXML里面的run(),怎么无法调用
MyHtml.html<html>
<head>
<title>球员注册</title>
<SCRIPT type="text/javascript" language="javascript">
function check(){
if(checkname()&&checkage()&&checknumber()&&checkposition()&&checknation()&&checkteam()){
return true;
}else
return false;
}
function checkname(){
var name1 = document.myform.name;
if(name1.value==""){
alert("请输入球员名");
return false;
}
return true;
}
function checkage(){
var age1=document.myform.age;
if(age1.value==""){
alert("请输入年龄");
age.focus();
return false;
}
return true;
}
function checknumber(){
var number1 = document.myform.number;
if(number1.value==""){
alert("请输入号码");
return false;
}
return true;
}
function checkpositon(){
var position1 = document.myform.position;
if(position1.value==""){
alert("请输入位置");
return false;
}
return true;
}
function checknation(){
var nation1 = document.myform.nation;
if(nation1.value==""){
alert("请输入国籍");
return false;
}
return true;
}
function checkteam(){
var team1 = document.myform.team;
if(team1.value==""){
alert("请输入球队");
return false;
}
return true;
}
</SCRIPT>
</head>
<body >
<form name="myform" action="register.jsp" method="post" onsubmit="return check()">
<table align="center">
<tr align="center">
<td colspan="2">球员信息</td>
</tr>
<tr>
<td>球员名:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>年龄:</td>
<td><input type="text" name="age"></td>
</tr>
<tr>
<td>号码:</td>
<td><input type="text" name="number"></td>
</tr>
<tr>
<td>球员姓名:</td>
<td><input type="text" name="number"></td>
</tr>
<tr>
<td>位置:</td>
<td><input type="text" name="position"></td>
</tr>
<tr>
<td>国籍:</td>
<td><input type="text" name="nation"></td>
</tr>
<tr>
<td>所在球队:</td>
<td><input type="text" name="team"></td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" name="submit" value="注册"></td>
</tr>
</table>
</form>
</body>
</html>
register.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@ page import="add.*" %>
<jsp:useBean id="player" class="add.Addplayer" scope="page">
<jsp:setProperty name="player" property="*"/>
</jsp:useBean>
<jsp:useBean id="addxml" class="add.Addxml" scope="page"/>
<%
addxml.setaddplayer(player);
addxml.run();
out.println("ok");
%>
<html>
<head>
<title>注册成功</title>
</head>
<body>
添加成功<br>
球员名:<jsp:getProperty name="player" property="name" />
年龄: <jsp:getProperty name="player" property="age" />
号码: <jsp:getProperty name="player" property="number" />
位置: <jsp:getProperty name="player" property="position" />
国籍: <jsp:getProperty name="player" property="nation" />
球队:<jsp:getProperty name="player" property="team" />
</body>
</html>
Addplayer.java
package add;
public class Addplayer
{
public String name;
public String age;
public String number;
public String position;
public String nation;
public String team;
public void setname(String value)
{
this.name=value;
}
public void setage(String value)
{
this.age=value;
}
public void setnumber(String value)
{
this.number=value;
}
public void setposition(String value)
{
this.position=value;
}
public void setnation(String value)
{
this.nation=value;
}
public void setteam(String value)
{
this.team=value;
}
public String getname()
{
return this.name;
}
public String getage()
{
return this.age;
}public String getnumber()
{
return this.number;
}public String getposition()
{
return this.position;
}public String getnation()
{
return this.nation;
}public String getteam()
{
return this.team;
}
}
Addxml.java(里面的函数run()在jsp页面无法使用)
package add;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
public class Addxml {
public Addplayer addplayer;
public void run()
{
boolean flag;
Document document=null;
try
{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
document=builder.parse(new File("WebRoot\\zengzhuo.xml"));
Node root=document.getDocumentElement();
if(root.hasChildNodes())
{
Element selement=document.createElement("player");
root.appendChild(selement);
Element element=document.createElement("name");
element.appendChild(document.createTextNode(addplayer.getname()));
selement.appendChild(element);
element=document.createElement("age");
element.appendChild(document.createTextNode(addplayer.getage()));
selement.appendChild(element);
element=document.createElement("number");
element.appendChild(document.createTextNode(addplayer.getnumber()));
selement.appendChild(element);
element=document.createElement("position");
element.appendChild(document.createTextNode(addplayer.getposition()));
selement.appendChild(element);
element=document.createElement("nation");
element.appendChild(document.createTextNode(addplayer.getnation()));
selement.appendChild(element);
element=document.createElement("team");
element.appendChild(document.createTextNode(addplayer.getteam()));
selement.appendChild(element);
}
flag=SaveXmlFile(document,"WebRoot\\2.xml");
if(flag)
{
System.out.println("success");
}
else
{
System.out.println("failure");
}
}
catch(Exception e)
{e.printStackTrace();}
}
public void setaddplayer(Addplayer add)
{
this.addplayer=add;
}
public boolean SaveXmlFile(Document document,String filename)
{
boolean flag=true;
try
{
TransformerFactory tFactory=TransformerFactory.newInstance();
Transformer transformer=tFactory.newTransformer();
DOMSource source=new DOMSource(document);
StreamResult result=new StreamResult(new File(filename));
transformer.transform(source,result);
}
catch(Exception e)
{
flag=false;
e.printStackTrace();
}
return flag;
}
}
zengzhuo.xml
<?xml version="1.0" encoding="gb2312"?>
<players xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="zengzhuo.xsd">
<player>
<name>ROONEY</name>
<age>25</age>
<number>10</number>
<position>forward</position>
<nation>ENGLAND</nation>
<team>Man Utd</team>
</player>
<player>
<name>de Gea</name>
<age>21</age>
<number>1</number>
<position>goalkeeper</position>
<nation>SPANISH</nation>
<team>Man Utd</team>
</player>
<player>
<name>Ferdinand</name>
<age>32</age>
<number>5</number>
<position>back</position>
<nation>ENGLAND</nation>
<team>Man Utd</team>
</player>
<player>
<name>Luis</name>
<age>24</age>
<number>17</number>
<position>half back</position>
<nation>Portugal</nation>
<team>Man Utd</team>
</player>
<player>
<name>Hernández</name>
<age>23</age>
<number>14</number>
<position>forward</position>
<nation>MEXICO</nation>
<team>Man Utd</team>
</player>
<player>
<name>Lampard</name>
<age>32</age>
<number>8</number>
<position>half back</position>
<nation>ENGLAND</nation>
<team>Chelsea</team>
</player>
<player>
<name>Drogba</name>
<age>33</age>
<number>9</number>
<position>forward</position>
<nation>Cote d'ivoire </nation>
<team>Chelsea</team>
</player>
</players>