JSP页面HTML标签中可以嵌入JSTL?

为什么在<input>标签中能写JSTL代码?

<input type="text" class="span12" name="loginname" autocomplete="off"                                                        <c:if test="${loginname!=null}">value="${loginname}"</c:if> placeholder="邮箱/用户名/已验证手机" /> 
阅读 6.7k
4 个回答

JSP标准标签库(JSP Standard Tag Library,JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。和JSP里面的标签是可以一起使用的,而JSP包含静态部分(标准的HTML标签、静态的页面内容等)和动态内容(Java程序控制的内容),实际上JSPServlet的一种特殊的形式,每一个JSP的页面就是一个Servlet的实例。所以在<input>标签里面加入JSTL代码,等同于完成一个完成的业务逻辑Servlet,两者之间可以搭配使用。

因为jsp文件在第一次请求的时候会被servlet容器编译成java class,所以其中的JSTL都会被编译和转换。

tomcat会读取jsp文件,解析jsp中的非html标签,像你这里的话tomcat会读取这段<c:if test=></c:if>代码并用解析器解析(文件头里的taglib对应类),归根到底就是jsp会经过tomcat的compile再转换成outputstream(标准的html代码)到client(ie,ff,chrome)

jstl代码在书写的时候有固定的格式与写法,它们会先经由tomcat等servlet容器解析生成相应的结果数据,这个过程发生在服务器端;而html标签解析发生在浏览器端

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题