很多简单问题吖。。。。。急求解决。高分求解

jmonian 2011-11-03 05:36:15
NO.1

jsp网页上有一个文本框(输入数字)、进行跳转页面的。
但是问题是不输入点击跳转就出错了。然后我加了 js 验证这个文本框是否为空、但是没用、
文本域:
 <input name="jump" onkeyup="value=value.replace(/[^(\d)]/g,'')" class="" id="jump" type="text" size="4" /> 

onkeyup 这个用来不让用户输入汉字等的字符、
js验证:
<script language="JavaScript">
function formcheck(form1) //form1是表单
{var flag = true;
if (form1.jump.value =="")
{ alert("请输入需要跳转的页码!");
form1.jump.focus();
flag = false;
}
return flag;
}
</script>



NO2:

我的登录页面输错用户名和密码 就会弹出提示框、但是提示框里的提示是乱码。 验证是写在 servlet里的、

servlet里有这么两句:
request.setCharacterEncoding("gb2312") ;

response.setContentType("text/html;charset=GB2312");

登录页面的编码是 gb2312
数据库也是 gb2312




NO3:
我的搜索框里一旦输入数据库里查询不到的信息。就会出错。
我想用 n进行判断是否有数据。但是不行。。
贴出部分代码:

int n = 0 ;
while(iter.hasNext()&&n<Pagesize)
{

DB_book m = (DB_book)iter.next() ;
n++ ;
String id=m.getId();
String name=m.getName();

%>



..................省略。



<%
}


if(n==0)
{
out.print("<script type='text/javascript'>alert('未查询到相关信息!');document.location.href='XXX.jsp';</script>");
}
%>
...全文
185 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
jmonian 2011-11-07
  • 打赏
  • 举报
回复
还是没解决乱码问题。。。。。。。哎哎哎。。。
编码器也不知道怎么用 哎哎哎。。。。
hongfeideng 2011-11-04
  • 打赏
  • 举报
回复
NO1:你写得那个JS函数有被调用吗?还是被调用的代码没有贴出来,没代码我也不好说,所有不解释,应该调用部分错了,你检查检查调用部分


NO2:用个一个Filter即可解决,代码如下:

public class Encoding implements Filter{

public void destroy() {

}

public void doFilter(ServletRequest req, ServletResponse res,
FilterChain cha) throws IOException, ServletException {
req.setCharacterEncoding("utf-8");
res.setCharacterEncoding("utf-8");
cha.doFilter(req, res);
}

public void init(FilterConfig arg0) throws ServletException {

}

}


然后在xml里面配置一下,配置如下:

<filter>
<filter-name>encoding</filter-name>
<filter-class>com.etonen.filter.Encoding</filter-class>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

OK,NO2解决

NO3:代码太少没办法写解决代码,给你点思路,自己找找吧

没必要这么写判断
你直接判断你那个list的大小是不是==0,如果是0的话就执行
out.print("<script type='text/javascript'>alert('未查询到相关信息!');document.location.href='XXX.jsp';</script>");
,然后return,否则就继续下去执行,没有必要再转换成Iterator吧
这样写肯定能解决的!

建议:以后发帖最好把错误和代码多贴上一点点,不要那么小气,要学会开源!!!



xiaobangxxx 2011-11-04
  • 打赏
  • 举报
回复
no2:
name = request.getParameter("username");
username = new String(name.getByte("ISO8859-1"),"GBK");
xiaobangxxx 2011-11-04
  • 打赏
  • 举报
回复
no2:
name = request.getParameter("username");
username = new String(name.getByte("ISO8859-1"),"GBK");
小鸟啄菊花 2011-11-04
  • 打赏
  • 举报
回复
LS+1 - -~!!
java_freshman01 2011-11-04
  • 打赏
  • 举报
回复
....看不懂
jmonian 2011-11-04
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 hongfeideng 的回复:]
NO1:你写得那个JS函数有被调用吗?还是被调用的代码没有贴出来,没代码我也不好说,所有不解释,应该调用部分错了,你检查检查调用部分


NO2:用个一个Filter即可解决,代码如下:

Java code


public class Encoding implements Filter{

public void destroy() {

……
[/Quote]


。。。。好吧。我是怕一大堆代码。大家不想看。才没贴
funfenffun 2011-11-03
  • 打赏
  • 举报
回复
No3,你可以先 select count(*) from tb1; 得到记录总条数count;
然后你有一个固定的页面条数Pagesize,还有一个要跳到第几页的PageNo对吧,
那么你设 BeginRow=(PageNo-1)*Pagesize+1,EndRow=PageNo*Pagesize,应该输出的记录的首末行
把BeginRow,EndRow与count比较,
*如果EndRow<count,那么接着数据库查找
*如果BeginRow<count<EndRow,那么EndRow=count,接着数据库查找
*如果count<BeginRow,那么直接输出没记录,结束
数据库查找语句:select * from tb1 where rownum between BeginRow and EndRow;
取出要输出到页面上的Pagesize条记录,
funfenffun 2011-11-03
  • 打赏
  • 举报
回复
No3,你可以先 select count(*) from tb1; 得到记录总条数count;
然后你有一个固定的页面条数Pagesize,还有一个要跳到第几页的PageNo对吧,
那么你设 BeginRow=(PageNo-1)*Pagesize+1,EndRow=PageNo*Pagesize,应该输出的记录的首末行
把BeginRow,EndRow与count比较,如果BeginRow<count<EndRow,那么EndRow=count,接着数据库查找
如果count<BeginRow,直接输出没记录,结束
数据库查找语句:select * from tb1 where rownum between BeginRow and EndRow;
取出要输出到页面上的Pagesize条记录,
funfenffun 2011-11-03
  • 打赏
  • 举报
回复
No2,你浏览器的编码方式是什么,工具栏:查看->编码,貌似浏览器的默认编码方式是utf-8,你要改成gb2312,
什么都不能 2011-11-03
  • 打赏
  • 举报
回复
既不写代码,也不写错误,想帮你都帮不了
jmonian 2011-11-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zh0134 的回复:]
NO 1 经过测试,是可以进行非空判断的

<form onsubmit="return formcheck(this)"> 你是不是调用的时候写错了


NO 2 这个暂时帮不了


NO 3 你这个是集合么,可以判断集合是否为空,集合的长度是否大于0
[/Quote]

NO3 : 完整点代码: queryAll是写在javabean的方法、查询全部.

DBClassbook d=new DBClassbook();
Iterator iter=null;
List all = null ;
request.setAttribute("all",d.queryAll());
all = (List)request.getAttribute("all") ;
iter = all.iterator() ;

}

int n = 0 ;
for(int i=0;i<index;i++){
iter.next();
}

while(iter.hasNext()&&n<Pagesize)
{

DB_book m = (DB_book)iter.next() ;
n++ ;
String id=m.getId();
String name=m.getName();

jmonian 2011-11-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zh0134 的回复:]
NO 1 经过测试,是可以进行非空判断的

<form onsubmit="return formcheck(this)"> 你是不是调用的时候写错了


NO 2 这个暂时帮不了


NO 3 你这个是集合么,可以判断集合是否为空,集合的长度是否大于0
[/Quote]

NO1 问题提错了。不过已经解决了。 谢谢。 坐等NO2.NO3
什么都不能 2011-11-03
  • 打赏
  • 举报
回复
要服务器端验证
String jump = request.getParameter("jump");
jump = (null == jump || "".equals(jump)) ? "1" : jump;

首先保证服务器不会抛出错误

其次,你的页面调用验证方法的地方没有写,估计是那边有问题
CloudX2019 2011-11-03
  • 打赏
  • 举报
回复
NO 1 经过测试,是可以进行非空判断的

<form onsubmit="return formcheck(this)"> 你是不是调用的时候写错了


NO 2 这个暂时帮不了


NO 3 你这个是集合么,可以判断集合是否为空,集合的长度是否大于0

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧