Struts2 无法访问直接通过URL访问jsp文件

Struts2 无法访问直接通过URL访问jsp文件

struts2配置文件如下:



	

	
		
			/jsp/welcome.jsp
			/jsp/login.jsp
		
	
    
action类如下:
package com.escape.action;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {

	private String username;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	private String password;
	
	
	//编写主方法
	public String execute(){
		if("tangbo".equals(username) && "123456".equals(password)){
			return SUCCESS;		//这里直接当成string类型
		}
		return LOGIN; 
	}	
}
web.xml如下:


  Struts2MVCTest
  
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
  
  
    struts2
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  
  
    struts2
    *.action
  
login.jsp文件如下:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<%@ taglib uri="/struts-tags" prefix="s" %>



  
    
    
    My JSP 'login.jsp' starting page
    
	
	
	    
	
	
	

  
  
  
    
    
    	 
web project的文件目录如下:
Struts2 无法访问直接通过URL访问jsp文件_第1张图片

浏览器访问jsp文件下的login.jsp发现错误如下:
Struts2 无法访问直接通过URL访问jsp文件_第2张图片
只有通过http://localhost:8080/Struts2MVCTest/loginPerson.action才能正确访问。
查找原因:直接在jsp文件夹下新建一个jsp通过URL可以直接访问。网上搜索原因,部分人说是因为在jsp中加入了struts2标签库。查看了书的源例程之后看到struts配置如下:
Struts2 无法访问直接通过URL访问jsp文件_第3张图片
要将login设置成全局result。发现还是不可以,最后再找原因原来是web.xml配置URLpattern时没有配置jsp文件夹,添加如下:
  
    struts2
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  
  
    struts2
    *.action
    /jsp/*
  
然后可以直接通过URL:http://localhost:8080/Struts2MVCTest/jsp/login.jsp直接访问。
排除方法:1.排除web.xml配置问题 2.排除struts2配置问题




你可能感兴趣的:(struts,2.x)