当我尝试从其他页面注销时,在主页面上没有获得样式?

时间:2012-08-04 07:28:16

标签: struts2

我开发了一个简单的struts2 Web应用程序。 其中有两页 index.jsp page1.jsp ,它们位于名为 Page

的文件夹中

我使用了以下jar文件

 antlr.jar
 commons-beanutils.jar
 commons-digester.jar
 commons-fileupload.jar
 commons-logging.jar
 commons-logging-1.0.4.jar
 commons-validator.jar
 freemarker-2.3.8.jar
 jakarta-oro.jar
 jsf-api.jar
 jsf-impl.jar
 jstl-1.2.jar
 ognl-2.6.11.jar
 struts.jar
 struts2-core-2.0.11.2.jar
 xwork-2.0.5.jar

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>
<constant name="struts.devMode" value="true" />
<constant name="struts.custom.i18n.resources" value="ApplicationResources" />
   <package name="helloworld" extends="struts-default">

      <action name="log1" class="com.loginAction">
            <result name="success">/index.jsp</result>
      </action>
   </package>
</struts>

的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Struts2_Sample</display-name>

   <filter>
      <filter-name>struts2</filter-name>
      <filter-class>
         org.apache.struts2.dispatcher.FilterDispatcher
      </filter-class>
   </filter>

   <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping>


  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

的index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
<body>
<s:a href="Page/page1.jsp">LOGIN</s:a>
</body>
</html>

网页/的Page1.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
<body>
<s:form action="log1" method="post">
  <s:textfield name="name" label="USERNAME"></s:textfield>
   <s:password name="pass" label="PASSWORD"></s:password>
  <s:submit method="execute" label="LOGIN"></s:submit>
</s:form>
</body>
</html>

的style.css

body 
{
background:olive;
}

loginAction.java

package com;
import com.opensymphony.xwork2.ActionSupport;
public class loginAction extends ActionSupport {

    public String execute() {
         return SUCCESS;        
    }
}

下图显示了我的应用程序的目录结构。 http://www.sendspace.com/file/zm46c1

当我运行应用程序时,它会指向 index.jsp 页面,其中会出现 LOGIN 超链接。此页面具有橄榄色背景颜色,我在 style.css 中定义。现在,当我点击它时,它将指向 page1.jsp ,显示两个文本字段和一个提交按钮。

问题:

当我点击提交按钮时,它会指向前一个 index.jsp 但没有任何背景颜色。即使我点击它,它也会显示错误页面。

以下图片附件显示了我的应用程序的所有网页。 http://www.sendspace.com/file/djnqvo

当我点击LOGIN超链接时,我会收到错误页面。

任何人都可以告诉我为什么我会这样。

是否有解决此问题的方法。

1 个答案:

答案 0 :(得分:2)

<s:url value="/css/style.css"/>代替css/style.css。它首先使用index.jsp,因为jsp正在搜索同一目录中的css文件夹,但是当您访问其他两个页面时,正在搜索Page文件夹中的css文件夹。