浏览器访问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页面
项目结构如下:
[解决办法]
看看项目名是不是错了
[解决办法]
很明显是报错了。。只不过你没有捕获异常而已。。
你的错误被抛出给虚拟机了。。。
我猜原因有可能是你的拦截器把异常给拦截掉了。。
[解决办法]
试一下从主页跳转过去如何?
[解决办法]
是否将项目部署到服务器上了????
[解决办法]
这个问题嘛,其实很简单但是却也很愁人。
不过要先确定你的file后台是否能打印出其值;再者设置断点后是否进入了控制器。
如果两者都没有,那么恭喜你,你的struts程序是没有问题的。因为在没有进入控制器之前就出现了问题,
那问题在哪呢?就是你上传的图片。struts默认上传是2M,如果图片上传的是20M将不会进入控制器进行图片的upload处理。那为什么不报错呢?因为你没有定义拦截器的异常。
[解决办法]
this.uploadFile是本身的属性,你传参也叫uploadFile,那重复了嘛。
[解决办法]
哈哈,这种时间不冤枉,自己没有好好排错,我当初一个逗号还不是和你一样。不过同名我真不知道,原来还可以这样。