如何去除struts2标签自带的样式

今天使用struts2的标签做页面布局的时候发现使用了table后,每一个td都占了一行:为了演示,我把table的部分设置了1px的边框:

这不是我希望的效果,我希望这个提示信息和文本框在一行显示,上网搜罗了一下,找到了原因,分享给大家。

Struts2标签默认是含有样式的,即默认的样式中就是换行的。

如我们把struts2标签直接放在table里面,布局是变样子的,即默认会加了换行:

test.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

    <div id="div22">
        <s:form action="register" method="post" id="form1">
            <s:i18n name="ApplicationResources">
                <table align="left" style="border: 1px solid red; >
                    <tr height="20px;">
                        <td width="100px;">用户名</td>
                        <td width="100px;"><s:textfield name="register.username" id="username"></s:textfield>
                        </td>
                        <td width="500px;"> <font color="red"><s:text name="usernamePrompt"></s:text></font></td>
                        </td>

                    </tr>
                </table>
            </s:i18n>
        </s:form>
    </div>

</body>
</html>

 

页面默认是加上了换行,每一个td都占了一行:

 

 

这就是由于struts2标签默认是含有样式的原因,两个样式放在一起,自然就变了。

 查看struts.properties或$ {struts-core-2.06.jar}/org/apache/struts2/default.properties文件,其中有如下配置:

struts.ui.theme=xhtml
struts.ui.templateDir=template
struts.ui.templateSuffix=ftl

这一段就是关于struts2模版的配置信息。

我们可以把struts2标签中自带的样式去掉,然后自己进行样式设置。

配置样式可以在struts.properties文件中进行配置以下三行配置代码即可:

struts.properties:

struts.ui.theme=simple
struts.ui.templateDir=template
struts.ui.templateSuffix=ftl

然后在运行代码,发现使用的就是我希望的布局了。

 

struts.properties文件中全部内容:

 

<!-- 配置国际化文件基本名和编码 -->
struts.custom.i18n.resources=messages
struts.i18n.encoding=UTF-8

<!-- 配置上传文件的临时存放地址 -->
struts.multipart.saveDir =/tmp

<!-- 去掉struts标签自带的样式 -->
struts.ui.theme=simple
struts.ui.templateDir=template
struts.ui.templateSuffix=ftl

 

 如果没有struts.properties文件,可以修改struts.xml文件,在其中加入如下行

<constant name="struts.ui.theme" value="simple" />
<constant name="struts.ui.templateDir" value="template" />
<constant name="struts.ui.templateSuffix" value="ftl" />

struts.ui.theme=simple可以解决struts2标签自动换行问题,即不再自动被添加进table标签中。

使用struts.properties文件,可以使用struts.xml进行配置:

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="facePot" extends="struts-default">
        <action name="dispatcher" class="DispatcherAction">
            <result name="goRegister">/WEB-INF/register/register.jsp</result>
            <result name="input">/index.jsp</result>
        </action>
    <constant name="struts.ui.theme" value="simple" />
    <constant name="struts.ui.templateDir" value="template" />
    <constant name="struts.ui.templateSuffix" value="ftl" />
</struts>

 

 

 

 

 

 

感谢 参考文章:

http://hi.baidu.com/8_8_8_8_8_8/item/50c4b72ef36526c0ef10f16f

 

posted @ 2013-12-13 00:08  奋斗小青年yky  阅读(162)  评论(0)    收藏  举报