非常急的问题,挺简单的,请高手指教!
package com.inc;
import java.sql.*;
public class ErrMsg
{
public String ErrMsg1(String str,String url)
{
return("<script lanuage='javascript'>alert('"+str+"');location.href='"+url+"';</script>");
}
public String ErrMsg2(String str)
{
return("<script lanuage='javascript'>alert('"+str+"');history.back(-1);</script>");
}
}
上面是一个.java文件,已经编译成.class文件!在使用这个.class文件的时候代码如下
String ErrMsg2("文字");
使用后会出错!请问错在哪里?正确的使用方法是什么?
问题点数:20、回复次数:21Top
1 楼sessisn()回复于 2006-07-19 00:49:52 得分 0
怎么没有人说话呀?Top
2 楼kevinliuu()回复于 2006-07-19 08:42:19 得分 2
ErrMsg errmsg = new ErrMsg();
String s = errmsg.ErrMsg2("文字");Top
3 楼jackson416(鬼鬼 | 问世间小裤衩是何物,为何.....)回复于 2006-07-19 08:48:43 得分 0
楼上正解Top
4 楼diggywang(Miner Lover!)回复于 2006-07-19 08:50:33 得分 0
就是就是,没对象生成怎么能调用public方法呀!Top
5 楼pdvv(花猫)回复于 2006-07-19 08:55:25 得分 2
<%
if(error){
out.println(new ErrMsg("出现错误,自动跳到a.jsp", "a.jsp"));
}
%>
<%
if(error){
out.println(new ErrMsg("出现错误,请重试!"));
}
%>Top
6 楼sessisn()回复于 2006-07-19 10:21:45 得分 0
diggywang(Miner Lover!
这位兄弟的意思我有些不明白!!
上面的实例我都使用了!还是出错,郁闷!
org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred at line: 12 in the jsp file: /ShowContents.jsp
Generated servlet error:
ErrMsg1 cannot be resolved to a type
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
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)
Top
7 楼emin_lee(emin)回复于 2006-07-19 10:26:20 得分 0
可以贴出你的ShowContents.jsp代码看看~
问题在这个页面上~Top
8 楼sessisn()回复于 2006-07-19 10:29:10 得分 0
用到的两个页面的原代码如下!
------------------ShowContent.jsp------------------------------------
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<jsp:useBean id="ErrMsg" scope="page" class="com.inc.ErrMsg"/>
<%@ include file="Conn.jsp"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title><%=Config.getString(2)%></title>
</head>
<%}%>
<body>
<%
String BorderName=request.getParameter("BorderName"); //获得的版块名称
String RequestId=request.getParameter("ShowId"); //显示内容的ID
if(BorderName==null)
{
out.print(new ErrMsg1("出现错误,自动跳到a.jsp", "a.jsp"));
}
%>
</body>
</html>
--------------------------------------------------------------------------
-----------------------ErrMsg.java----------------------------------------
package com.inc;
public class ErrMsg
{
public String ErrMsg1(String str1 , String url)
{
return("<script lanuage='javascript'>alert('"+str1+"');location.href='"+url+"';</script>");
}
public String ErrMsg2(String str2)
{
return("<script lanuage='javascript'>alert('"+str2+"');history.back(-1);</script>");
}
}
-----------------------------------------------------------------------------------Top
9 楼emin_lee(emin)回复于 2006-07-19 10:36:05 得分 0
你的类是ErrMsg,ErrMsg1、ErrMsg2只是其中的一个方法,所以,调用的时候不能够new ErrMsg1;
你可以用kevinliuu(@。@) ( 两星(中级)) 的建议,
<%
String BorderName=request.getParameter("BorderName"); //获得的版块名称
String RequestId=request.getParameter("ShowId"); //显示内容的ID
if(BorderName==null)
{
out.print(new ErrMsg().ErrMsg1("出现错误,自动跳到a.jsp", "a.jsp"));
}
%>Top
10 楼emin_lee(emin)回复于 2006-07-19 10:40:05 得分 0
给你一个工具类
---------------------------
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 工具包
*/
public final class JspUtil {
/**
* 显示提示信息
*
* @param message 需要显示的提示信息
*/
public static void go(HttpServletResponse response, String message)
throws IOException {
go(response, message, 0);
}
/**
* 按指定步数返回页面
*
* @param backStep 返回页面的步数
*/
public static void go(HttpServletResponse response, int backStep)
throws IOException {
go(response, null, 0);
}
/**
* 显示提示信息,并按指定步数返回页面
*
* @param message 需要显示的提示信息
* @param backStep 返回页面的步数
*/
public static void go(HttpServletResponse response, String message,
int backStep) throws IOException {
PrintWriter out = response.getWriter();
out.println("<script language=\"Javascript\">");
if (message != null) {
out.println("alert(\"" + message + "\");");
}
if (backStep < 0) {
out.println("window.history.go(" + backStep + ");");
}
out.println("</script>");
out.flush();
out.close();
}
/**
* 显示提示信息,并跳转至指定页面
*
* @param message 需要显示的提示信息
* @param toUrl 跳转的指定页面
*/
public static void go(HttpServletResponse response, String message,
String toUrl) throws IOException {
PrintWriter out = response.getWriter();
out.println("<script language=\"Javascript\">");
if (message != null) {
out.println("alert(\"" + message + "\");");
}
if (toUrl != null) {
out.println("top.document.location.replace('" + toUrl + "')");
}
out.println("</script>");
out.flush();
out.close();
}
/**
* 显示提示信息,关闭原有页面,并跳转至指定页面
*
* @param message 需要显示的提示信息
* @param response 响应对象
*/
public static void goClose(HttpServletResponse response, String message)
throws IOException {
PrintWriter out = response.getWriter();
out.println("<script language=\"Javascript\">");
if (message != null) {
out.println("alert(\"" + message + "\");");
}
out.println("window.opener='xxx'");
out.println("window.close();");
out.println("</script>");
out.flush();
out.close();
}
}
-------------------------
使用方法:
import 引入后
JspUtil.go(...);Top
11 楼sessisn()回复于 2006-07-19 10:49:28 得分 0
emin_lee()
你在上面提到的
<%
{
out.print(new ErrMsg().ErrMsg1("出现错误,自动跳到a.jsp", "a.jsp"));
%>
这段代码我用了,还是出错!!请加我QQ吧!咱们QQ上说78054谢谢!Top
12 楼sessisn()回复于 2006-07-19 10:51:18 得分 0
org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred at line: 11 in the jsp file: /ShowContents.jsp
Generated servlet error:
ErrMsg.ErrMsg1 cannot be resolved to a type
Top
13 楼emin_lee(emin)回复于 2006-07-19 10:56:53 得分 0
标准的javabean,如果要通过<jsp:useBean来使用的话,必须有显性的无参数的构造方法!
public class ErrMsg{
public ErrMsg(){
}
...
}
Top
14 楼emin_lee(emin)回复于 2006-07-19 10:58:36 得分 0
如果用了<jsp:useBean倒入的话,直接可以
<jsp:useBean id="ErrMsg" scope="page" class="com.inc.ErrMsg"/>
....
ErrMsg.ErrMsg1("出现错误,自动跳到a.jsp", "a.jsp")Top
15 楼sessisn()回复于 2006-07-19 11:27:13 得分 0
如果可以的话请帮我在原来的代码基础上修改一下,好吗??Top
16 楼emin_lee(emin)回复于 2006-07-19 11:32:18 得分 0
------------------ShowContent.jsp------------------------------------
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,com.inc.ErrMsg" errorPage="" %>
<jsp:useBean id="ErrMsg" scope="page" class="com.inc.ErrMsg"/>
<%@ include file="Conn.jsp"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title><%=Config.getString(2)%></title>
</head>
<%}%>
<body>
<%
String BorderName=request.getParameter("BorderName"); //获得的版块名称
String RequestId=request.getParameter("ShowId"); //显示内容的ID
if(BorderName==null)
{
out.print(ErrMsg.ErrMsg1("出现错误,自动跳到a.jsp", "a.jsp"));
}
%>
</body>
</html>
--------------------------------------------------------------------------
-----------------------ErrMsg.java----------------------------------------
package com.inc;
public class ErrMsg{
public ErrMsg(){
}
public String ErrMsg1(String str1 , String url){
return("<script lanuage='javascript'>alert('"+str1+"');location.href='"+url+"';</script>");
}
public String ErrMsg2(String str2){
return("<script lanuage='javascript'>alert('"+str2+"');history.back(-1);</script>");
}
}Top
17 楼emin_lee(emin)回复于 2006-07-19 11:33:03 得分 16
hehe~
我的qq被盗了~
:)Top
18 楼sessisn()回复于 2006-07-19 11:49:28 得分 0
emin_lee() 强!!问题解决了!!是不是关键就在errmsg.java那儿?public ErrMsg(){}那儿!!多谢!!Top
19 楼emin_lee(emin)回复于 2006-07-19 12:11:49 得分 0
不客气:)
解决了就好!
以后养成习惯,所有的对象,都显示的写上无参数的构造方法,这样就可以了~Top
20 楼maomaofly110(浪天无名)回复于 2006-07-19 12:14:23 得分 0
这么简单的问题怎么写的那么复杂撒Top
21 楼sessisn()回复于 2006-07-19 12:36:59 得分 0
有空加一下我的QQ:78054 Msn:sessisn@hotmail.com
交个朋友!!我刚刚学习JSP有很多不懂的地方,想向你请教!Top




