看看我的JavaBean里的方法又啥错误?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了看看我的JavaBean里的方法又啥错误?相关的知识,希望对你有一定的参考价值。

我在JSP页面调用这个方法刚开始报错后来自己就不报错了
但是reg.xml没有任何变化

public void hello()


try
DocumentBuilderFactory domFactory=DocumentBuilderFactory.newInstance();
domFactory.setValidating(false);
domFactory.setNamespaceAware(true);
DocumentBuilder domBuilder=domFactory.newDocumentBuilder();
//Document document=domBuilder.parse(new File("reg.xml"));
Document document=domBuilder.newDocument();

Node root=document.getFirstChild();//获取根节点
Element username=document.createElement("username");
Element password=document.createElement("password");
username.appendChild(document.createTextNode(user));
password.appendChild(document.createTextNode(pwd));
root.appendChild(username);
root.appendChild(password);

//输出
TransformerFactory transf=TransformerFactory.newInstance();
Transformer trans=transf.newTransformer();
Source in=new DOMSource(document);
Result out=new StreamResult(new FileOutputStream("reg.xml"));
trans.transform(in, out);


catch(Exception e)

e.printStackTrace();



------------------------------
reg.xml内容
。。。。。。。。。。。。。。。。。。。

<?xml version="1.0" encoding="GB2312" standalone="no"?><reg></reg>
变量 user 和pwd 是通过 setXxx();传入的 提交值

现在已经不报错了,但是reg.xml跟本没有变化;
以前报的错是:The method hello() is undefined for the type Reg

你至少要告诉我们是报什么错吧?不然我们大海捞针啊,而且,我的一个同学用ASP编程时也出现过类似问题,重启后就好了。大家都挺郁闷的,呵呵。
现在,你把错误公布了,我可以猜出问题了,是编译器的问题,编译器的编译顺序没有编译到hello()的声明和定义就直接编译到调用该类的程序。这种情况我在做PB时也遇到过,你不用重新启动,把调用hello()的那段剪切下,再编译,再复制回去,就没有问题了。
参考技术A 一般问题出在名字上,是hello,reg这些有问题,或者是大小写出问题了
可能你第一次有名字写错了。。。如果不是,可以看看以下内容,就是关于你这类问题的(不好意思,英文的,希望你看得懂)

How to run javac 1.5 (or beyond) compiler for JSP compilation in Tomcat 5.5 with generics enabled (and other Java 1.5 only features like autoboxing)

Target Audience
Java/JSP developers on Tomcat and Application Server administrators.

Problem
Tomcat 5.5 (unlike Tomcat 5.0 and versions below) comes with Eclipse JDT compiler enabled by default for JSP compilation. JDT compiler is not jdk 1.5 compliant as of now.

Solution
To just use the javac 1.5 compiler with Java 1.4 source code compliant JSP pages (you cannot use generics or autoboxing in scripted jsp code and other Java 1.5 features) and Java 1.4 compliant target classes generated, you have to add tools.jar from your %JAVA_HOME%\lib directory to %TOMCAT_HOME%\common\lib.
Then replace the jasper-compiler-jdt.jar with ant.jar in %TOMCAT_HOME%\common\lib. Make sure you have downloaded the latest version of Ant.

To enable 1.5 features in your JSP files (like generics and autoboxing for example) you need to additionally modify %TOMCAT_HOME%\conf\web.xml file.

希望你能有所收获
参考技术B 你写的。那么多没细看。修改xml 挺简单。这个是我写的。。。看看对你有没有帮助
package com.shao;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.w3c.dom.*;
import org.xml.sax.SAXException;

import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.*;
import javax.xml.xpath.*;

public class Test
public static void main(String[] args)
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
Element theBook = null, theElem = null, root = null;
try
factory.setIgnoringElementContentWhitespace(true);

DocumentBuilder db = factory.newDocumentBuilder();
Document xmldoc = db.parse(new File("src/com/shao/test1.xml"));
root = xmldoc.getDocumentElement();

// --- 新建一本书开始 ----
theBook = xmldoc.createElement("book");
theElem = xmldoc.createElement("name");
theElem.setTextContent("新书");
theBook.appendChild(theElem);

theElem = xmldoc.createElement("price");
theElem.setTextContent("20");
theBook.appendChild(theElem);

theElem = xmldoc.createElement("memo");
theElem.setTextContent("新书的更好看。");
theBook.appendChild(theElem);
root.appendChild(theBook);
System.out.println("--- 新建一本书开始 ----");
output(xmldoc);
// --- 新建一本书完成 ----

// --- 下面对《哈里波特》做一些修改。 ----
// --- 查询找《哈里波特》----
theBook = (Element) selectSingleNode("/books/book[name='哈里波特']",
root);
System.out.println("--- 查询找《哈里波特》 ----");
output(theBook);
// --- 此时修改这本书的价格 -----
theBook.getElementsByTagName("price").item(0).setTextContent("15");// getElementsByTagName返回的是NodeList,所以要跟上item(0)
System.out.println("--- 此时修改这本书的价格 ----");
output(theBook);
// --- 另外还想加一个属性id,值为B01 ----
theBook.setAttribute("id", "B01");
theBook.setAttribute("pId","1");
System.out.println("--- 另外还想加一个属性id,值为B01 ----");
output(theBook);
// --- 对《哈里波特》修改完成。 ----

// --- 要用id属性删除《三国演义》这本书 ----
theBook = (Element) selectSingleNode("/books/book[@id='B02']", root);
System.out.println("--- 要用id属性删除《三国演义》这本书 ----");
output(theBook);
theBook.getParentNode().removeChild(theBook);
System.out.println("--- 删除后的XML ----");
output(xmldoc);

// --- 再将所有价格低于10的书删除 ----
NodeList someBooks = selectNodes("/books/book[price<10]", root);
System.out.println("--- 再将所有价格低于10的书删除 ---");
System.out.println("--- 符合条件的书有 " + someBooks.getLength()
+ "本。 ---");
for (int i = 0; i < someBooks.getLength(); i++)
someBooks.item(i).getParentNode()
.removeChild(someBooks.item(i));

output(xmldoc);

saveXml("src/com/shao/test2.xml", xmldoc);
catch (ParserConfigurationException e)
e.printStackTrace();
catch (SAXException e)
e.printStackTrace();
catch (IOException e)
e.printStackTrace();



public static void output(Node node) // 将node的XML字符串输出到控制台
TransformerFactory transFactory = TransformerFactory.newInstance();
try
Transformer transformer = transFactory.newTransformer();
transformer.setOutputProperty("encoding", "gb2312");
transformer.setOutputProperty("indent", "yes");

DOMSource source = new DOMSource();
source.setNode(node);
StreamResult result = new StreamResult();
result.setOutputStream(System.out);

transformer.transform(source, result);
catch (TransformerConfigurationException e)
e.printStackTrace();
catch (TransformerException e)
e.printStackTrace();



public static Node selectSingleNode(String express, Object source) // 查找节点,并返回第一个符合条件节点
Node result = null;
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
try
result = (Node) xpath
.evaluate(express, source, XPathConstants.NODE);
catch (XPathExpressionException e)
e.printStackTrace();


return result;


public static NodeList selectNodes(String express, Object source) // 查找节点,返回符合条件的节点集。
NodeList result = null;
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
try
result = (NodeList) xpath.evaluate(express, source,
XPathConstants.NODESET);
catch (XPathExpressionException e)
e.printStackTrace();


return result;


public static void saveXml(String fileName, Document doc) // 将Document输出到文件
TransformerFactory transFactory = TransformerFactory.newInstance();
try
Transformer transformer = transFactory.newTransformer();
transformer.setOutputProperty("indent", "yes");

DOMSource source = new DOMSource();
source.setNode(doc);
StreamResult result = new StreamResult();
result.setOutputStream(new FileOutputStream(fileName));

transformer.transform(source, result);
catch (TransformerConfigurationException e)
e.printStackTrace();
catch (TransformerException e)
e.printStackTrace();
catch (FileNotFoundException e)
e.printStackTrace();


参考技术C 根据我的经验,我们公司的老员工说的,这些都是人编的,不要钻牛角尖,好了就行。。有时候程序会出现这样的问题。你一保存后机子重启下有些程序就变好的。。。所以我们也相当无奈! 参考技术D 有没有提示说找不到reg.xml文件。
你的XML文件不会是跟你的JAVA文件放在同一目录吧,如果不在一起,得指定其路径。
第5个回答  2008-06-28 最好先把JAVA语法看得多点!熟能生巧

以上是关于看看我的JavaBean里的方法又啥错误?的主要内容,如果未能解决你的问题,请参考以下文章

fstream.h是啥意思?又啥作用啊?

db.properties 在Java中又啥作用

java ee如何使用javabean对一个操作数据库的项目进行封装?

数据库和java Bean

接着上回,导包正确之后,出现javabean.Friend cannot be cast to java.util.List,的错误。找了很久。以为是User user0作为参数,改成了String

vim的Plug到底又啥用