如何去除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文件,其中有如下配置:
<!--[if !supportLineBreakNewLine]-->

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

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

<!--[endif]-->

 

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

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

struts.properties:

 

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

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

<!--EndFragment-->



 struts.properties文件中全部内容:

<!--EndFragment-->
<!-- 配置国际化文件基本名和编码 -->
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文件,在其中加入如下行

<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

<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

 

 

猜你喜欢

转载自ykyfendou.iteye.com/blog/1988958