📄 bean-message.jsp
字号:
<%@ page contentType="text/html;charset=GB2312" import="java.util.*,org.apache.struts.webapp.exercise.*"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html>
<head>
<html:base/>
<title><bean:message></title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body bgcolor="white">
<h1><bean:message></h1>
<p><bean:message>用来显示资源文件中的消息文本。该标签有一个bundle属性,它和struts-config.xml文件中message-resources
标记内的key属性相对应。例如,在taglib1应用的struts-config.xml文件中有以下代码:</p>
<font class="CodeStyle">
<message-resources parameter="message2" key="beanmessage"/>
</font>
<p>当用户希望使用这个资源文件中的消息文本时,只需要将<bean:message>标记的bundle设为"beanmessage"就可以了。下面是
message2的资源文件中的内容:</p>
<font class="CodeStyle">
beanmessage1=This is bean message No.1
beanmessage2=This is bean message No.2
beanmessage3=This is bean message with arg,{0}.
</font>
<p>使用<bean:message>标记从资源文件中指定消息文本有以下三种方式:</p>
<p>第一种,直接在<bean:message>标记中使用key属性指定对应的资源文件中的消息文本。例如,若要显示key=beanmessage1的
消息文本,可以使用下面的语句:</p>
<font class="CodeStyle">
<bean:message bundle="beanmessage" key="beanmessage1"/>
</font>
<p>以下是实际效果:</p>
<bean:message bundle="beanmessage" key="beanmessage1"/>
<p>第二种,使用<bean:message>标记的name属性指定一个字符串类型的变量,以该变量的值作为消息文本的key值。示例代码如下:
</p>
<font class="CodeStyle">
<%<br>
String test = "beanmessage1";<br>
pageContext.setAttribute("messagekey",test);<br>
%><br>
<bean:message bundle="beanmessage" name="messagekey"/><br>
</font>
<p>上面的代码首先定义了一个字符串,该串就是资源文件内消息文本的key值,然后将之存储于pageContext对象内,并命名为messagekey,
再由标记的name属性指定pageContext对象内的messagekey。以下是运行效果,可以看到,依然能读出key为beanmessage1的消息文本。</p>
<%
String test = "beanmessage1";
pageContext.setAttribute("messagekey",test);
%>
<bean:message bundle="beanmessage" name="messagekey"/>
<p>第三种方法是使用一个已经存在的JavaBean对象名做为name属性的值,再将其中某个属性做为property属性的值,以该JavaBean对象中
的这一属性所存入的字符串值作为消息文本的key。示例代码如下所示:</p>
<font class="CodeStyle">
<%<br>
TestPageBean bean1 = new TestPageBean("beanmessage1","empty");<br>
pageContext.setAttribute("testbean",bean1);<br>
%><br>
<bean:message bundle="beanmessage" name="testbean" property="name"/><br>
</font>
<p>在上面的代码中首先初始化了一个TestPageBean类型的对象bean1,这个bean1有两个属性,一个是name属性,一个是value属性,都是字符串
类型,在构造函数中已经分别为其初始化了,其中,将name属性的值设为beanmessage1,也就是消息文本的key值。然后,将这个bean1存入
pageContext对象中,命名为testbean。在<bean:message>标记中name属性指定了pageContext对象内的testbean,property属性指定
了这个testbean的name属性。运行结果如下,可以看到,依然能从资源文件中读出相应的消息文本。</p>
<%
TestPageBean bean1 = new TestPageBean("beanmessage1","empty");
pageContext.setAttribute("testbean",bean1);
%>
<bean:message bundle="beanmessage" name="testbean" property="name"/>
<p>有些时候,资源文件中的消息文本带有一些参数,如下面的形式:</p>
<font class="CodeStyle">
beanmessage3=This is bean message with arg,{0}.
</font>
<p>可以使用<bean:message>标记的arg0等属性来指定参数的值。比如arg0代表第一个参数,arg1代表第二个参数,依此类推,一直到
arg4。以下是代码示例:</p>
<font class="CodeStyle">
<bean:message bundle="beanmessage" key="beanmessage3" arg0="HELLOWORLD"/>
</font>
<p>运行效果如下所示:</p>
<bean:message bundle="beanmessage" key="beanmessage3" arg0="HELLOWORLD"/>
<p>
<a href="index.jsp">返回主页面</a>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -