调试论坛续一

来源:互联网 发布:协同oa办公软件 编辑:程序博客网 时间:2024/04/30 02:54

1、了解了注册时的代码,register.jsp中日期显示的代码,以及图片选择的代码

2、更正了,发表主题的时候,内容的字数没有在前台进行控制的问题。增加了判断代码如下:

else if(oFCKeditor1.EditorDocument.body.innerHTML.length>1000)
 {   
  alert("字数不能超过1000字!");
  return false;
 }    

增加此代码即可以使得程序运行更加人性化。

3、SQLserver2000中的汉字占两个字符存储;

4、我们再回复以及在编辑内容的时候,字符的格式连同字符一起存储到数据库中的。

5、原来的代码,没有增加模块的功能,我在后台增加了一个模块,但是新增加的这个模块,如果没有帖子,或者仅有一个帖子就在点击此模块进入时,就会报错。而且用管理员账号进行删除或者加精的时候都会出错。

修改代码如下:

SubjectManager.java中增加方法:getNameBySubjectID_wxf(int id),这个方法是根据subjectid获取subject对象,并且以List的形式返回。

在action页面中,增加:List subjects=SubjectManager.getNameBySubjectID_wxf(Integer.parseInt(request.getParameter("sid")));

 

最后,在获取板块名称时,如下代码:

Subject name =(Subject)subjects.get(0);
    request.setAttribute("subjectname", name.getName());

注意:TopicAciton.java以及AdminopAciton.java都要增加以上代码。方可修改上面的BUG。

6、发现了另一个BUG是这样的,热门搜索下面的搜索“基金管理”显示出来的都是一些胡乱显示的,而且“搜索到14条关于 【???】 主题”也就是searchname是乱码,因此:List searchTopics=(List)TopicManager.getTopSearch(search);执行时,查找出来的数据,也不是我们想要的。

原文在处理searchref的时候增加了对中文乱码的处理,此处是多此一举。

//search=new String(request.getParameter("searchhref").getBytes("ISO-8859-1"),"GBK");//处理乱码
   //request.setAttribute("searchname",new String(request.getParameter("searchhref").getBytes("ISO-8859-1"),"GBK"));
--------------------------------------------------------------------------------------------------- 

  search=request.getParameter("searchhref");//不需要处理乱码
   request.setAttribute("searchname",request.getParameter("searchhref"));

 

问题就得到了解决。

7、测试发现回帖的时候当回到第10条帖子的时候,按照每页10条来说,应该在第二页中显示,并且共计两页。

但是,出现的情况是,页数没有发生变化,并且仅仅当11条回复信息的时候才能看到第二页,并且同时增加了10条11条两条回复信息。

解决这个BUG的方法如下:

 

在replyAciton.java中修改如下:

else
  {
   request.setAttribute("ReplySum", Integer.valueOf((replys.size()+1) % 10 == 0?(replys.size()+1)/10:(replys.size()+1)/10+1));//取得当主题下回帖总数
   //System.out.println("size:="+(replys.size()+1));
  }
  
  if(text != null && text !="" && Integer.parseInt(text) >=0 && Integer.parseInt(text)<= ((replys.size()+1) % 10 == 0?(replys.size()+1)/10:(replys.size()+1)/10+1)  )
  {
   nonce=text;
  }

也就是在取所有页,以及当前页的时候:

用如下将  原有的 replys.size()修改成为:(replys.size()+1)即可。

8、在别的电脑上访问,所有存放在D:盘上的图片,在页面上都显示不出来:

修改:UploadAction.java中的代码

if(!(new File("C:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/forum/pic/UserUploadFiles/").isDirectory()))
   {
    File newTopFile=new File("C:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/forum/pic/UserUploadFiles");
    newTopFile.mkdir();
   }
   
   File newFile=new File("C:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/forum/pic/UserUploadFiles/"+request.getSession().getAttribute("username"));
   newFile.mkdir();
   String path1="pic/UserUploadFiles/"+request.getSession().getAttribute("username")+"/"+fileName;
   String path="C:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/forum/pic/UserUploadFiles/"+request.getSession().getAttribute("username")+"/"+fileName;
   FileOutputStream out=new FileOutputStream(new File(path));
   out.write(fileData);
   out.close();
   UploadFile uf=new UploadFile(fileName,contentType,fileSize,path1);

 

原来的是 D:/UserUploadFiles,另外存储在数据库的路径是相对路径,在其他机子上可以正常访问,在定义uf时候使用的是 path.

 

另外为了把原来放置在D上的文件,也能访问,首先把数据复制到tomcat下面的pic目录下。

其次数据库的存放位置也要做相应的修改。

修改的SQL语句如下:

update topic
set  uploadfile =replace(convert(varchar(8000),uploadfile),'d:','pic')
where  uploadfile like 'd%
'

原创粉丝点击