首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

浏览器访问struts项目的时分一直处于打开状态,但网页就是打不开,控制台也不报错

2013-07-09 
浏览器访问struts项目的时候一直处于打开状态,但网页就是打不开,控制台也不报错以下是各个文件代码及配置:

浏览器访问struts项目的时候一直处于打开状态,但网页就是打不开,控制台也不报错
以下是各个文件代码及配置:

Register.java代码

package controller;

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;


public class Register extends ActionSupport{

private String username;

private File uploadFile;

private String uploadFileFileName;

@Override
public void validate(){

}

public String getUsername(){
return username;
}

public void setUsername(String username){
this.username=username;
}

public File getUploadFile(){
return uploadFile;
}

public void setUploadFile(File uploadFile){
this.uploadFile=uploadFile;
}

public String getUploadFileFileName(){
return uploadFileFileName;
}

public void setUploadFileFileName(String uploadFileFileName){
this.uploadFileFileName=uploadFileFileName;
}

public String execute() throws IOException {

System.out.println("username的值是:"+username);

String targetDirectory=ServletActionContext.getServletContext().getRealPath("/upload");


File target = new File(targetDirectory,uploadFileFileName);

FileUtils.copyFile(uploadFile,target);

return "register";
}
}



struts.xml 配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
 "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<package name="struts3.1" extends="struts-default" >

<action name="register" class="controller.Register">
<result name="register">showregister.jsp</result>
<result name="input">register.jsp</result>
</action>
</package>

<constant name="struts.ui.theme" value="simple"></constant>
</struts>


register.jsp代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page isELIgnored="false" %>
<%@ taglib uri="/struts-tags" prefix="s" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<html>
   
  <body> 
 
<s:form action="register" method="post" enctpye="multipart/form-data">
username:<s:textfield name="username"></s:textfield>
<br/>
<s:file name="uploadFile"></s:file>
<br/>
<s:submit value="提交"></s:submit>
</s:form>

  </body>
</html>



struts.properties文件配置:

struts.multipart.maxSize=2048000000
struts.multipart.SaveDir=/temUploadFile




在地址栏输入:http://localhost:8080/struts2.1/register.jsp
浏览器一直处于打开状态,但就是访问不到要访问的jsp页面

项目结构如下:

浏览器访问struts项目的时分一直处于打开状态,但网页就是打不开,控制台也不报错







[解决办法]
看看项目名是不是错了
[解决办法]
很明显是报错了。。只不过你没有捕获异常而已。。
你的错误被抛出给虚拟机了。。。
我猜原因有可能是你的拦截器把异常给拦截掉了。。

[解决办法]
试一下从主页跳转过去如何?
[解决办法]
是否将项目部署到服务器上了????
[解决办法]
这个问题嘛,其实很简单但是却也很愁人。
不过要先确定你的file后台是否能打印出其值;再者设置断点后是否进入了控制器。
如果两者都没有,那么恭喜你,你的struts程序是没有问题的。因为在没有进入控制器之前就出现了问题,
那问题在哪呢?就是你上传的图片。struts默认上传是2M,如果图片上传的是20M将不会进入控制器进行图片的upload处理。那为什么不报错呢?因为你没有定义拦截器的异常。
[解决办法]

引用:
现在这个问题是解决了,但是点击提交按钮后,会报错:
ognl.MethodFailedException: Method "setUploadFile" failed for object controller.Register@804a77

即提示
public void setUploadFile(File uploadFile){
this.uploadFile=uploadFile;}

这段代码有问题,但是uploadFile本身就声明为File类型,不知道怎么错了

this.uploadFile是本身的属性,你传参也叫uploadFile,那重复了嘛。
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

现在这个问题是解决了,但是点击提交按钮后,会报错:
ognl.MethodFailedException: Method "setUploadFile" failed for object controller.Register@804a77

即提示
public void setUploadFile(File uploadFile){
this.uploadFile=uploadFile;}

这段代码有问题,但是uploadFile本身就声明为File类型,不知道怎么错了

this.uploadFile是本身的属性,你传参也叫uploadFile,那重复了嘛。
形参跟实参是可以同名的
网上查了下资料,出现这种问题大概有三种原因:
1、form表单的method方法设置问题,应该为post;
2、enctype的设置问题,一般为"multipart/form-data",表示二进制;
3、Action类的setXXX方法的形参类型问题,这个问题出现得很普遍;
按照上面三种问题,我居然发现原谅我的enctype写成了enctpye,真冤枉,浪费了好多时间


哈哈,这种时间不冤枉,自己没有好好排错,我当初一个逗号还不是和你一样。不过同名我真不知道,原来还可以这样。

热点排行