共有回帖数 2 个
-
JSP 1.1提出了一种扩展的JSP标志的方法,这种方法命名为“标志库”。这些库允许另外的一些类似于jsp:include 或者jsp:forward的标志,但是它们不是以jsp:为前缀的并且还附件一些特性。 为了介绍标志库,在本教程中我们使用Blazix标志库作为例子。这个标志库只能用在Blazix服务器中,这个服务器你可以免费下载。 每一个标志库都有它自己的标志库特殊的文档。为了使用标志库,你可以使用"taglib" directive来指出标志库“description”处在什么地方。对于Blazix标志库而言,directive如下: %@ taglib prefix="blx" uri="/blx.tld" % 上面者句中“uri”就是指出了标志库描述所在的地方。标志库的前缀是不同的。这个指令的意思是说我们可以使用blx:来使用库中的标志。Blazix标志库提供了一个blx:getProperty标志。这个标志可以允许用户编辑表单数据。现在,在GetName.jsp文件中,我们增加一个jsp:useBean并且将表单放置在blx:getProperty中: %@ taglib prefix="blx" uri="/blx.tld" %jsp:useBean id="user" class="UserData" scope="session"/
HTML
BODY
blx:getProperty name="user" property="*"
FORM METHOD=POST ACTION="SaveName.jsp"
What's your name? INPUT TYPE=TEXT NAME=username SIZE=20BR
What's your e-mail address? INPUT TYPE=TEXT NAME=email SIZE=20BR
What's your age? INPUT TYPE=TEXT NAME=age SIZE=4
PINPUT TYPE=SUBMIT
/FORM
/blx:getProperty
/BODY
/HTML从上面的代码中我们可以发现blx:getProperty不是以/结尾的,而是用来结尾。这条语句将所有的表单输入区域输入到blx:getProperty中,这样它们就可以被标志库正确地修改。 接着建立一个从GetName.jsp到NextPage.jsp的连接,你将发现bean的数据自动显示在输入区域中。所以现在用户可以编辑数据了。
楼主 2016-11-04 13:15 回复
-
-
如果你细心点你还可以发现表单仍有一个问题,即“age”开始显示空而不是0。这个问题我们可以通过增加“emptyInt=0”到blx:getProperty和blx:setProperty标志中,这样bean区域就被初始化为0了。如果键入的年龄不是一个有效的数值,那么我们就使用0来标志空字符。 另外一个小的问题是如果有错误出现并且我们旧书包含“GetName.jsp”的时候,就得到两个"HTML"标志。对于这个问题一个完美的解决方法是去掉out.println,并按如下传递错误: % if ( haveError ) { request.setAttribute( "errors", errors.toString()); pageContext.forward( "GetName.jsp" ); } else pageContext.forward( "NextPage.jsp" ); % 那么我们可以在GetName.jsp执行“request.getAttribute”,并且如果返回数值为非空,就显示错误。这个就留着作为本节教程的练习吧。 最后,再说说本节的练习吧,首先刚才说的内容。还要阅读标志库文档中的SQL标志,然后创建一个数据库表格;再编写一个JSP文件,其上有一个 FORM以及表单上有一个选择框;接着使用SQL标志来根据数据库表格制作选择框。
2楼 2016-11-04 13:16 回复
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈 |
关于直线 |
版权声明 |
会员须知