一:标签使用的声明方式:
<%@ taglib uri=“http://struts.apache.org/tags-bean” prefix=”bean” %>
<%@ taglib uri=“http://struts.apache.org/tags-html” prefix=”html” %>
二:可以在web.xml文件中手工定义一个uri:
在web.xml文件中定义一个jsp-config元素
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
</jsp-config>
三:web.xml文件又被称为deployment descriptor
这个文件服务器自动读取其中的配置
四:struts中的转向方式
分为两种情况:
1、使用ActionForward对象来转向
return new ActionForward(“/index.jsp”).
2、在配置文件中配置forward节点
<forward name=”index” path=”/index.jsp” redirect=””></forward>
Return mapping.findForward(“index”);
如果设置redirect=true,则表示使用的是response.sendRedirect()方式,则在跳转后的页面通过request.getAttribute()是得不到跳转前的页面设置的属性值的。反之,如果redirect=false,则表示采用的是
request.getRequestDispatcher(“index.jsp”).forward(request,response)的方式,该方式是可以在页面之间传递属性值。
一:struts标签库
常用的标签库有三类:
html标记:展示一些html元素,比如
html:form,html:submit,html:text,html:password
bean 标记:用来输出一些bean内容,比如bean:write,bean:define
logic标记:用来实现逻辑操作,比如logic:equals,logic:iterator
二:使用标签的两种模式:
1、使用tld文件中默认uri配置
2、在web.xml文件中设置tag-lib节点
三:配置和引入用户标签库
第一种方式:Web.xml文件配置
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
</jsp-config>
第二种方式:页面引用
<%@ taglib uri=“/WEB-INF/struts-html.tld” prefix=”bean” %>
红色部分必须保证一致
备注:表示资源定位的一般以斜杠开头。
四:常用标签示例
<html:select property=”sex”>
<html:option value=”male”>男</html:option>
<html:option value=”female”>女</html:option>
</html:select>
在对应的formbean中对应的属性值用String类型。
1、<html:radio>标签
<html:radio property=”sex” value=”male”>男</html:radio>
<html:radio property=”sex” value=”female”>女<html:radio>
<html:radio property=”sex” value=”unknown”>未知<html:radio>
在对应的formbean中对应的属性值用String类型。
2、<html:checkbox>标签
<html:checkbox property=”fav” value=”reading”>读书</html:checkbox>
<html:checkbox property=”fav” value=”news”>新闻</html:checkbox>
<html:checkbox property=”fav” value=”music”>音乐</html:checkbox>
在对应的formbean中对应的属性值用String【】类型。
取值的时候用String[] fav = loginForm.getFavorite()
try{
for(int i=0;i<fav.length;i++){
response.getWriter().println(fav[i]);
}
}
即可。
3、<html:image>标签
<html:image alt=”显示图片” src=”sunset.jpg”></html:image>
<html:img alt=”显示图片” src=”sunset.jpg”></html:image>
备注:src=”sunset.jgp”中的sunset.jpg存放在WebRoot文件夹下。
4、<html:link>标签
<html:link href=”A.jsp”>链接</html:link>
<html:link href=”login.do?username=zhangsan”>链接</html:link>
5、<html:hidden>标签
<html:hidden property=”flag” value=”delete”/>
6、<html:multibox>标签
<html:multibox property=”fav” value=”sport”> </html:multibox>体育
<html:multibox property=”fav” value=”sport”> </html:multibox>财经
<html:multibox property=”fav” value=”sport”> </html:multibox>旅游
7、Cookie的使用
<%
Cookie ck = new Cookie(“username”,“administrator”);
ck.setMaxAge(1000*60*60);
response.addCookie(ck);
Cookie[] cks = request.getCookies();
For(int i=0;i<cks.length;i++){
Cookie ck = cks[i];
Out.println(ck.getName());
}
%>
Cookie标签使用:
<bean:cookie name=”username” id=”a”/>
<bean:write name=”a” property=” name”/>
<bean:write name=”a” property=” value”/>
8、<bean:difine>标签
传统方式:
<%
String username = “administrator”;
Out.println(username);
%>
<bean:define id=”myname” value=”administrator”></bean:define>
<bean:write name=”myname”/>
/*将request范围内的一个值保存到session里 */
传统方式:
<%
Request.setAttribute(“username”,”administrator”);
String username = “” + request.getAttribute(“username”);
Session.setAttribute(“myname”,username);
%>
<bean:define>标签
<bean:define id=”myname” name=”username” scope=”request” toScope=”session”>
<%
out.println(session.getAttribute(“myname”);
%>
9、<bean:write>标签
<bean:parameter id=”myname” name=”username” value=”administrator” multiple=”true”/> //其中multiple表示可以接受多个参数值
<bean:write name=”myname”/>
10、显示属性值的四种方法
<%
request.setAttribute(“username”,”administrator”);
%>
第一种:
<%
out.println(request.getAttribute(“username”));
%>
第二种:
<%=request.getAttribute(“username”);%>
第三种:
${username}
第四种:
<bean:write name=”username”>
11、<bean:write>标签输出对象的属性值
<%
Emp emp = new Emp();
emp.setUsername(“zhangsan”);
emp.setPasswd(“123456”);
%>
<br>${emp.passwd}
<bean:write name=”emp” property=”passwd”>
12、<logic:empty>标签
<logic:empty name=”username”>
对不起,usename值为空
</logic:empty>
13、<logic:equal>标签
<logic:equal name=”myname” value=”zhangsan”>
<jsp:forward page=”index.jsp/>
</logic:equal>
14、<logic:match>标签
<logic:match parameter=”username” value=”admin”>
你具有管理员的权限
</logic:match>
备注:在IE地址栏里如下输入:
http://localhost:8080/web/a.jsp?username = admin
一:常用标签示例:
1、转向的几种方式
第一种:
<jsp:forward page=”index.jsp”/></jsp:forward>
第二种:
request.getRequestDispatcher(“index.jsp”).forward(request,response)
第三种:
<logic:forward name=”K”/>
备注:
在配置文件里要有如下配置:
<global-forward>
<forward name=”K” path=”k.jsp”/>
</global-forward>
2、<logic:iterator>标签
传统方式:
<table border=”1” bgcolor=”red”>
<%
List list = (List)request.getAttribute(“userlist”);
for(int i=0;i<list.size();i++){
String str = (String)list.get(i);
%>
<tr>
<td><%=str%></td>
</tr>
<%}%>
</table>
<bean:iterate>方式
<table border=”1” bgcolor=”red”>
<logic:iterate id=”u” name=”userlist”>
<tr>
<td><bean:write name=”u”%></td>
</tr>
3、ApplicationResources.properties为默认的资源文件名称,struts会在其他资源里找不到时,在这个文件里寻找该资源
4、格式化日期
Locale lc = new Locale(“zh”,”CN”);
System.out.println(Local.getDefault().getDisplayCountry());
int datesstyle = DateFormat.FULL;
int timestyle = DateFormat.FULL;
DateFormat df = DateFormat.getDateTimeInstance(datestyle,timestyle,lc);
Date date = new Date();
String str = df.format(date);
System.out.println(str);
5、资源文件的输出
配置文件里配置(ApplicationResource.properties):
title = my project!
jsp文件里输出:
<bean:message key=”title”/>
struts-config.xml里需配置资源文件
6、修改struts属性文件,使属性文件里可以保存中文
windows->Preferences->General->Content Types里的Text->Java Properties File
7、显示资源文件里的错误信息
资源文件里:
username = username cannot be null
form表单里:
ActionErrors errors = new ActionErrors();
ActionMessage message = new ActionMessage(“username”);
errors.add(“username”,username):
jsp文件里:
<html:form action=”/login”>
<html:text property=”username”/><html:errors property=”username”/>
备注:刷新一个jsp页面时,会调用formbean里的reset()方法,可以把一些初始信息放到该方法中
8、鼠标移过的时候颜色发生变化的效果实现
字体颜色发生变化:<tr onmouseover=”this.style.color=’#CF3698’” onmouseout=”this.style.color=’’” onclick=”this.style.color=’blue’”
MsoNormal
评论