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

PoorScholor1st 2013-06-23 10:10:27
以下是各个文件代码及配置:

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页面

项目结构如下:








...全文
367 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
iaiti 2013-06-24
  • 打赏
  • 举报
回复
引用 13 楼 PoorScholor1st 的回复:
[quote=引用 12 楼 iaiti 的回复:] [quote=引用 10 楼 PoorScholor1st 的回复:] 现在这个问题是解决了,但是点击提交按钮后,会报错:
ognl.MethodFailedException: Method "setUploadFile" failed for object controller.Register@804a77
即提示
public void setUploadFile(File uploadFile){
this.uploadFile=uploadFile;}
这段代码有问题,但是uploadFile本身就声明为File类型,不知道怎么错了
this.uploadFile是本身的属性,你传参也叫uploadFile,那重复了嘛。[/quote]形参跟实参是可以同名的 网上查了下资料,出现这种问题大概有三种原因: 1、form表单的method方法设置问题,应该为post; 2、enctype的设置问题,一般为"multipart/form-data",表示二进制; 3、Action类的setXXX方法的形参类型问题,这个问题出现得很普遍; 按照上面三种问题,我居然发现原谅我的enctype写成了enctpye,真冤枉,浪费了好多时间[/quote] 哈哈,这种时间不冤枉,自己没有好好排错,我当初一个逗号还不是和你一样。不过同名我真不知道,原来还可以这样。
PoorScholor1st 2013-06-24
  • 打赏
  • 举报
回复
引用 12 楼 iaiti 的回复:
[quote=引用 10 楼 PoorScholor1st 的回复:] 现在这个问题是解决了,但是点击提交按钮后,会报错:
ognl.MethodFailedException: Method "setUploadFile" failed for object controller.Register@804a77
即提示
public void setUploadFile(File uploadFile){
this.uploadFile=uploadFile;}
这段代码有问题,但是uploadFile本身就声明为File类型,不知道怎么错了
this.uploadFile是本身的属性,你传参也叫uploadFile,那重复了嘛。[/quote]形参跟实参是可以同名的 网上查了下资料,出现这种问题大概有三种原因: 1、form表单的method方法设置问题,应该为post; 2、enctype的设置问题,一般为"multipart/form-data",表示二进制; 3、Action类的setXXX方法的形参类型问题,这个问题出现得很普遍; 按照上面三种问题,我居然发现原谅我的enctype写成了enctpye,真冤枉,浪费了好多时间
iaiti 2013-06-24
  • 打赏
  • 举报
回复
引用 10 楼 PoorScholor1st 的回复:
现在这个问题是解决了,但是点击提交按钮后,会报错:
ognl.MethodFailedException: Method "setUploadFile" failed for object controller.Register@804a77
即提示
public void setUploadFile(File uploadFile){
this.uploadFile=uploadFile;}
这段代码有问题,但是uploadFile本身就声明为File类型,不知道怎么错了
this.uploadFile是本身的属性,你传参也叫uploadFile,那重复了嘛。
shuai45 2013-06-24
  • 打赏
  • 举报
回复
这个问题嘛,其实很简单但是却也很愁人。 不过要先确定你的file后台是否能打印出其值;再者设置断点后是否进入了控制器。 如果两者都没有,那么恭喜你,你的struts程序是没有问题的。因为在没有进入控制器之前就出现了问题, 那问题在哪呢?就是你上传的图片。struts默认上传是2M,如果图片上传的是20M将不会进入控制器进行图片的upload处理。那为什么不报错呢?因为你没有定义拦截器的异常。
PoorScholor1st 2013-06-24
  • 打赏
  • 举报
回复
现在这个问题是解决了,但是点击提交按钮后,会报错:
ognl.MethodFailedException: Method "setUploadFile" failed for object controller.Register@804a77
即提示
public void setUploadFile(File uploadFile){
this.uploadFile=uploadFile;}
这段代码有问题,但是uploadFile本身就声明为File类型,不知道怎么错了
PoorScholor1st 2013-06-24
  • 打赏
  • 举报
回复
哎,原来是被挂起来了。。。。汗。。。。
PoorScholor1st 2013-06-24
  • 打赏
  • 举报
回复
引用 7 楼 Android0_1 的回复:
是否将项目部署到服务器上了????
已经部署了啊,我用的myeclipse,而且我把jsp代码改为纯粹显示一段文字后,还是该jsp页面还是不能打开
Android0_1 2013-06-24
  • 打赏
  • 举报
回复
是否将项目部署到服务器上了????
PoorScholor1st 2013-06-24
  • 打赏
  • 举报
回复
怎么没有人了?哪位大哥再帮我看看呢?
nongzhenqin 2013-06-23
  • 打赏
  • 举报
回复
试一下从主页跳转过去如何?
PoorScholor1st 2013-06-23
  • 打赏
  • 举报
回复
引用 2 楼 AA5279AA 的回复:
很明显是报错了。。只不过你没有捕获异常而已。。 你的错误被抛出给虚拟机了。。。 我猜原因有可能是你的拦截器把异常给拦截掉了。。
但是我没有配置拦截器啊
PoorScholor1st 2013-06-23
  • 打赏
  • 举报
回复
引用 1 楼 dracularking 的回复:
看看项目名是不是错了
没有,我上面的url打错了,我访问的地址是:http://localhost:8080/struts2.5/register.jsp
失落夏天 2013-06-23
  • 打赏
  • 举报
回复
很明显是报错了。。只不过你没有捕获异常而已。。 你的错误被抛出给虚拟机了。。。 我猜原因有可能是你的拦截器把异常给拦截掉了。。
dracularking 2013-06-23
  • 打赏
  • 举报
回复
看看项目名是不是错了

81,094

社区成员

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

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