struts2中simple主题下标签默认样式的移除方法

在Struts2中,使用simple主题时,当表单校验出错后,错误信息会显示在标签中。如果默认的样式不符合我们的需求,我们需要对其进行自定义。以下是移除标签默认样式的完整攻略。

1. 引入CSS文件

在JSP中添加如下代码引入CSS文件:

<head>
  <link rel="stylesheet" type="text/css" href="style.css"/>
</head>

其中style.css为你的自定义CSS文件名。

2. 自定义样式

在CSS文件中添加以下代码,移除标签默认样式。

.s2fielderror {
  display: block;
  color: red;
  font-size: 12px;
}

可以看到,我们将.s2fielderror的样式进行了修改,包含了显示属性、颜色和字体大小。

3. Struts配置文件修改

在struts.xml文件中添加以下配置,用于在simple主题下使用自定义样式。

<constant name="struts.ui.theme" value="simple"/>
<package name="default" extends="struts-default">
  <result-types>
    <result-type name="velocity" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
  </result-types>
  <action name="test" class="com.example.TestAction">
    <result name="success">/test.jsp</result>
  </action>
</package>
<interceptors>
        <interceptor name="theme" class="com.opensymphony.xwork2.interceptor.StaticParametersInterceptor">
            <param name="parameters.0">theme=default</param>
        </interceptor>
        <interceptor-stack name="defaultStack">
            <interceptor-ref name="theme"/>
            <interceptor-ref name="validation">
                <param name="excludeMethods">input,back,cancel,browse</param>
            </interceptor-ref>
            <interceptor-ref name="workflow"/>
        </interceptor-stack>
    </interceptors>

其中,struts.ui.theme为simple,/test.jsp为表单所处的JSP路径,com.example.TestAction为Action类路径。

4. 示例

下面是一个简单的示例代码:

<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
  <title>Struts 2</title>
  <link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
  <s:form action="test">
    <s:textfield name="username" label="Username"/>
    <br>
    <s:password name="password" label="Password"/>
    <br>
    <s:submit/>
    <s:fielderror/>
  </s:form>
</body>
</html>
public class TestAction extends ActionSupport {
    private String username;
    private String password;

    public String execute() {
        if (!"admin".equals(username) || !"admin".equals(password)) {
            addFieldError("username", "用户名或密码不正确");
            return INPUT;
        }
        return SUCCESS;
    }

    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;
    }
}

其中,当登录验证不通过时,我们会调用addFieldError方法,传入参数username用户名或密码不正确,表示这个错误信息针对username字段。最后我们会返回INPUT结果,告知Struts2返回表单校验页面。

快速测试

现在我们根据以上步骤完成了自定义错误信息样式的配置,可以用以下代码快速测试:

<html>
<head>
  <title>Struts 2</title>
  <style type="text/css">
  .s2fielderror {
    display: block;
    color: red;
    font-size: 12px;
  }
  </style>
</head>
<body>
  <form name="loginForm" action="login.action" method="post">
      <table>
          <tr>
              <td>Username:</td>
              <td><input type="text" name="username"><br>
                  <s:fielderror fieldName="username"></s:fielderror></td>
          </tr>
          <tr>
              <td>Password:</td>
              <td><input type="password" name="password"><br>
                  <s:fielderror fieldName="password"></s:fielderror></td>
          </tr>
          <tr>
              <td colspan="2"><input type="submit" value="Login"></td>
          </tr>
      </table>
  </form>        
</body>
</html>

以上是如何移除Struts2 simple主题下默认样式的完整攻略。按照以上步骤,你可以自定义任何你想要的样式,并在表单表单校验出错时按照你的自定义样式显示错误信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:struts2中simple主题下标签默认样式的移除方法 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • MyBatis插件机制超详细讲解

    MyBatis插件机制超详细讲解 什么是MyBatis插件机制 MyBatis插件机制指的是MyBatis框架提供了一种扩展机制,可以在执行SQL语句的各个环节进行拦截,并在拦截到这些环节时进行自定义的操作,以实现更自定义的功能,例如SQL日志拦截、自定义SQL追踪、自定义SQL执行等。 插件机制最主要的功能是拦截方法并执行自定义操作。 MyBatis插件机…

    Java 2023年5月19日
    00
  • java连接MySQL数据库实现代码

    下面就来详细讲解如何使用Java连接MySQL数据库实现相关代码: 准备工作 首先需要下载安装MySQL数据库,安装完成后需要设置用户名和密码。 接着下载并安装Java SDK,在使用Java访问MySQL之前需要下载并安装MySQL JDBC驱动。 新建一个Java项目。 导入JDBC驱动 将下载好的MySQL JDBC驱动包(mysql-connecto…

    Java 2023年5月19日
    00
  • java 实现文件复制和格式更改的实例

    请允许我详细讲解一下“java 实现文件复制和格式更改的实例”的完整攻略。 准备工作 首先,我们需要明确目标:实现文件夹中文件的复制和格式的更改。需要先将文件夹中的文件集合到一个数组中,并且可根据一定规则(例如文件大小、文件类型等)对数组中的文件进行筛选。 //收集文件到数组 File folder = new File("源目录地址")…

    Java 2023年5月20日
    00
  • Dreamweaver CS5更改代码颜色方法(可自定义)

    Dreamweaver CS5更改代码颜色方法(可自定义) 在 Dreamweaver CS5 中,要更改代码颜色的方法如下: 在 Dreamweaver 菜单栏中选择“编辑” – “首选项” – “代码颜色” 在弹出的“代码颜色”设置对话框中,可以看到各种不同元素的代码颜色设置,比如“关键字”、“属性值”、“注释”等等 要更改某个元素的代码颜色,只需要将鼠…

    Java 2023年6月15日
    00
  • Java读取文本文件的各种方法

    下面我将详细讲解“Java读取文本文件的各种方法”的完整攻略。 步骤一:准备文件 首先,我们需要准备一个文本文件,例如 “test.txt”。这个文件可以放在项目目录下,或者使用绝对路径指定其位置。 步骤二:使用Java自带方法读取文本文件 Java提供了自带方法,可以方便地读取文本文件。以下是读取文本文件的代码示例: import java.io.File…

    Java 2023年5月20日
    00
  • Java并发编程示例(七):守护线程的创建和运行

    今天我们来详细讲解一下Java并发编程示例中的第七篇——“守护线程的创建和运行”。 什么是守护线程? 在Java中,有两种线程:用户线程和守护线程。 通俗来讲,用户线程属于前台线程,即主线程运行结束后,此线程不会因为还有工作要做而被强制退出;而守护线程属于后台线程,当主线程运行结束后,所有没有被结束的守护线程也会随之结束。也就是说,Java虚拟机只有用户线程…

    Java 2023年5月19日
    00
  • 关于 Tomcat进程意外退出的问题解析

    关于 Tomcat 进程意外退出的问题解析 Tomcat 是一款优秀的 Java Web 应用程序服务器,但在使用过程中,有时会出现进程意外退出的问题。下面将详细讲解如何解决这一问题。 1. 查看日志文件 当 Tomcat 进程意外退出时,首先需要查看日志文件,以确定是何种原因导致 Tomcat 进程意外退出。 Tomcat 的日志文件位于 $CATALIN…

    Java 2023年6月2日
    00
  • java分割日期时间段代码

    下面就让我来为您详细讲解一下“java分割日期时间段代码”的完整攻略。 1. 背景介绍 在日常开发中,经常会遇到需要把一个时间段拆分成多个小的时间段的需求,比如把一个月拆分成多个周,或者把一天拆分成多个小时等。Java中有多种方式来实现这个需求,下面我将详细介绍其中一种实现方法。 2. 实现思路 实现思路比较简单,主要是通过Java中的Calendar类来处…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部