JSP 简单的layout例子

本文介绍如何在JSP中创建并使用自定义布局标签,通过示例展示如何定义一个包含头部、主体和底部的标准页面布局,并在其他JSP页面中复用此布局。

首先,在WEB-INF目录下新建tags目录,然后,在tags目录下新建文件mainLayout.tag

内容为:

<%@tag pageEncoding="UTF-8"%>
<%@tag trimDirectiveWhitespaces="true"%>
<%@tag body-content="scriptless"%>
<%@ attribute name="title" required="true" type="java.lang.String" %>
<c:set var="rootpath" value="${ pageContext.request.contextPath}" scope="request" />
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>${ title}</title>
<link rel="stylesheet" type="text/css" href="${ rootpath}/res/css/cloud.css" />
<script type="text/javascript" src="${ rootpath}/res/js/cloud.js"></script>
</head>

<body>
<div class="main">
	<div class="top">this is my first layout jsp</div>
	<div class="mbody">
		<jsp:doBody></jsp:doBody>
	</div>
	<div class="bright">
		this is bottom for page
	</div>
</div>
</body>
</html>

这里还需要引入jstl的标签(PS: 这鸟博客提示有非法的uri)


使用:

在其他的jsp页面中,就可以用如下方式引用了

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="ot" tagdir="/WEB-INF/tags" %>
<ot:mainLayout title="腾讯首页">
	<h1>this is layout display centent</h1>
</ot:mainLayout>





<think> 我们参考用户的问题是关于在JSP中设置input框左边间隔的方法。根据用户提供的引用内容,我们可以找到一些相关的样式设置方法。 用户引用的内容[^3]中提到了通过设置margin-right来调整element表单的间距,但实际上调整左边间隔可以通过设置margin-left来实现。 另外,用户引用的内容[^4]中提到了一些样式设置,比如在表格中设置单元格的样式,但这里我们主要关注input框的左边间隔。 在JSP中设置input框左边间隔,通常有以下几种方法: 1. 使用内联样式:直接在input标签中添加style属性,设置margin-left。 示例:`<input type="text" style="margin-left: 20px;">` 2. 使用CSS类:定义一个CSS类,然后在input标签中引用这个类。 示例: ```css .left-margin { margin-left: 20px; } ``` 在JSP中: `<input type="text" class="left-margin">` 3. 使用外部样式表:将样式写在单独的CSS文件中,然后在JSP页面中引入该CSS文件。 4. 如果input框位于表单中,并且需要整体调整,可以参考引用[^3]中提到的表单样式设置,通过设置表单元素的margin-left来调整。 根据引用[^3]中的代码,我们可以模仿设置: ```css .el-form-item { margin-left: 20px; /* 设置左边间隔 */ } ``` 但是注意,这个类名可能是针对特定框架的(如Element UI),在普通的JSP页面中,我们可以自己定义类名。 5. 使用Bootstrap等前端框架:如果项目使用了Bootstrap,可以使用Bootstrap的间距工具类,例如:`ml-3`(margin-left: 1rem)。 考虑到用户可能没有使用任何框架,我们提供通用的方法。 下面是一个完整的JSP示例,展示如何设置input框的左边间隔: ```jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>设置input框左边间隔</title> <style type="text/css"> /* 方法1:使用类设置左边间隔 */ .input-left-margin { margin-left: 30px; /* 设置左边间隔为30px */ } /* 方法2:使用内联样式,在标签中直接写样式 */ /* 方法3:使用表单容器设置 */ .form-container { margin-left: 50px; /* 整个表单容器左移50px,里面的input都会跟着移动 */ } </style> </head> <body> <h3>设置input框左边间隔的几种方法</h3> <!-- 方法1:在input标签中使用class --> <div> <label>方法1(使用class):</label> <input type="text" class="input-left-margin" placeholder="左边间隔30px"> </div> <br/> <!-- 方法2:在input标签中使用内联样式 --> <div> <label>方法2(内联样式):</label> <input type="text" style="margin-left: 40px;" placeholder="左边间隔40px"> </div> <br/> <!-- 方法3:设置父容器的左边距,影响内部所有元素 --> <div class="form-container"> <label>方法3(容器设置):</label> <input type="text" placeholder="整个容器左移50px"> </div> <!-- 使用Bootstrap的例子,如果项目中引入了Bootstrap --> <!-- 需要先引入Bootstrap的CSS --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"> <div class="mt-3"> <label>Bootstrap工具类:</label> <input type="text" class="ms-3" placeholder="左边间隔(使用Bootstrap的ms-3)"> </div> </body> </html> ``` 注意: - 方法1和2直接作用于input元素,方法3作用于父容器。 - 使用Bootstrap时,`ms-3`表示左边间隔为1rem(根据Bootstrap的间距单位)。 如果用户的项目中使用了类似EasyUI(引用[^4]中提到的)或其他UI框架,可能需要按照框架的规范设置。例如在EasyUI中,可以通过在input的class中添加框架定义的间距类,或者使用框架提供的样式覆盖。 另外,用户引用的内容[^1]中设置时间控件时使用了`style="width:170%;margin-bottom:10px"`,这里设置了底边距,同样我们可以设置左边距。 因此,根据用户需求,我们推荐使用CSS设置margin-left属性,可以通过内联样式、内部样式表或外部样式表实现。 相关问题: 1. 如何调整JSP页面中多个input框之间的水平间距? 2. 在JSP中如何设置input框的右边间隔或者上下间隔? 3. 使用Bootstrap框架时,如何调整表单元素的间距? 4. 在EasyUI框架中设置input框左边间隔的方法是什么? </think> ### JSP 中设置 Input 框左边间隔的方法 在 JSP 中设置 input 框的左边间隔,主要通过 CSS 控制 `margin-left` 属性实现。以下是完整解决方案: #### 方法 1:内联样式直接设置 ```jsp <input type="text" style="margin-left: 30px;" placeholder="左侧间隔30px"> ``` #### 方法 2:CSS 类控制(推荐) ```jsp <style> /* 通用左边距类 */ .input-left-space { margin-left: 20px; /* 调整此值控制间距 */ } /* 特定表单间距 */ .form-item { margin-left: 15px; margin-bottom: 12px; /* 同时控制垂直间距 */ [^3] } </style> <input type="text" class="input-left-space" placeholder="类控制间距"> ``` #### 方法 3:父容器控制 ```jsp <style> .input-container { padding-left: 25px; /* 容器左侧内间距 */ } </style> <div class="input-container"> <input type="text" placeholder="通过容器控制"> </div> ``` #### 方法 4:表单布局统一设置 ```jsp <style> /* 表单内所有输入框左侧间隔 */ .form-layout input[type="text"] { margin-left: 18px; margin-right: 10px; /* 可同时设置右侧间隔 */ [^3] vertical-align: top; /* 保持垂直对齐 */ } </style> <form class="form-layout"> <input type="text" placeholder="用户名"> <input type="password" placeholder="密码"> </form> ``` #### 复杂布局场景(结合引用) ```jsp <style> /* 响应式间隔设置 */ @media (min-width: 768px) { .responsive-input { margin-left: 25px; } } /* 时间控件特殊间隔 */ [^1] .date-input { margin-left: 20px; width: 170%; /* 保持原有宽度设置 */ margin-bottom: 10px; } </style> <input type="text" class="layui-input date-input" id="time" placeholder="起始日期"> ``` ### 关键注意事项 1. **优先级问题**:内联样式 > ID选择器 > 类选择器 > 标签选择器 2. **单位选择**:常用 `px`(固定值)或 `em`(相对字体大小) 3. **框架整合**:EasyUI 等框架需通过 `data-options` 或覆盖默认样式实现[^4] 4. **响应式设计**:使用媒体查询适配不同屏幕尺寸 ### 完整 JSP 示例 ```jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <style> .form-container { padding: 20px; border: 1px solid #eee; } .spaced-input { margin-left: 25px; padding: 8px 12px; width: 200px; } .radio-group { margin-left: 30px; /* 单选按钮组间隔 */ [^2] } </style> </head> <body> <div class="form-container"> <!-- 文本输入框 --> <div style="margin-bottom:15px"> 用户名: <input type="text" class="spaced-input"> </div> <!-- 单选按钮组 --> <div class="radio-group"> <input type="radio" name="status" value="on"> 开启 [^2] <input type="radio" name="status" value="off"> 关闭 </div> <!-- 时间控件 --> <div style="margin-top:20px"> 日期: <input type="text" class="layui-input spaced-input" id="time" placeholder="选择日期" [^1] style="margin-left:15px; width:180px"> </div> </div> </body> </html> ``` ### 效果示意图 ```plaintext [ 用户名: ______________ ] [ ○ 开启 ○ 关闭 ] [ 日期: [选择日期] ] ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值