<s:iterator status="st">
<a href ="javascript:void(0);" onclick = "searchhcinfo(<s:property/>);">
<s:property/>
</a>
</s:iterator>
</s:generator>
直接做成超链接的方式处理,不用javascript:void(0):
因为链接的是我们的搜索引擎,要先编码然后传递过去。
该后:
<s:iterator status="st">
<a href ="http://www.test.com/q.html?keyword=<%=URLEncoder.encode("<s:property/>")%>&tn=" >
<s:property/>
</a>
</s:iterator>
</s:generator>
问题来了,要用Java代码解码Struts的tag标签。Java代码根本就不识别它,encode("<s:property/>")这样它只把<s:property/>当做普通的字符串解码了。而不写双引号的话,编译就报错,Java也没有这样的方法。
我想是不是要用自定义标签呢?网上看了Struts2的自定义标签不识别<s:property>,所以我就直接用了JSP的自定义标签,代码如下:
注意不能为src下的默认包
private String value = "";
private String encodervalue;
public String getEncodervalue() {
return encodervalue;
}
public void setEncodervalue(String encodervalue) {
this.encodervalue = encodervalue;
}
public String getValue() {
return value;
}
public int doStartTag() throws JspException {
if (null==encodervalue) {}else{
try {
pageContext.getOut().println(URLEncoder.encode(encodervalue));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return EVAL_BODY_INCLUDE;
}
public int doEndTag() throws JspTagException{
return EVAL_PAGE;
}
public void setValue(String value) {
this.value = value;
}
}
WEB-INF下创建文件夹tlds 里面创建tld文件util.tld代码如下:
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>A tag library exercising SimpleTag handlers.</description>
<tlib-version>1.0</tlib-version>
<short-name>util</short-name>
<uri>/util/tags</uri>
<tag>
<description>解码处理</description>
<name>encoder</name>
<tag-class>com.util.tag.EncoderTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>encodervalue</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
</taglib>
然后JSP里头部引用tld文件:
<%@ taglib uri="/util/tags" prefix="util" %>
页面里<util:encoder encodervalue="english"/><util:encoder encodervalue="中国"/>
然后就是测试,页面显示的正确的解码数据,要解决在s:generator里的超链接问题:
代码: <a href ="http://www.test.com/q.html?keyword=<util:encoder encodervalue=" <s:property/>"/>&tn=">
keyword 要传递一个编码过的数据,现在这个数据是自定义标签传递的,但是它不认识Struts2的标签。
传递测试值没有问题 a href ="http://www.test.com/q.html?keyword=&tn=<util:encoder encodervalue="中文"/>"> 而<s:property/>已经显示出来了数据,就是无法放到自定义标签里面执行显示,它却将<s:property/>当做一个字符串处理啦。
怎么办?Struts2里也没有给提供解码标签!无奈!
最终解决还是在后台处理,前台用了普通的s:iterator标签.
相关推荐
You can also create your own policy files that define arbitrary permission sets.<br/><br/>Comparison of the sample security policy file <br/><br/> <br/>Permissions/Resource Setting Admin Default ...
<groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.7</version> <dependencies> <dependency> <groupId>org.postgresql</groupId> ...
<s:property /><br/> </s:iterator> </s:generator> 例2: 生成一个iterator,使用count属性。因为count属性值为3,所以只有前三个内容(aaa,bbb,ccc)在生成的iterator中。 Generate an iterator with count ...
Neverthless, this is a good chance to enhance your debug abilty to eliminate those errors.<br/><br/>This book is compiled by matlab report generator and completely for free, you can share with your ...
<property name="addressdetail"/> </class> </hibernate-mapping> <hibernate-mapping> <class name="com.lavasoft.Person" table="PERSON"> <id name="personid"> <generator class="identity"/> </id> ...
<groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> </...
<groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> </dependency> ``` 3. **添加MySQL JDBC驱动依赖**:为了能够访问MySQL数据库,需要...
<groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.4.1</version> <optional>true</optional> </dependency> </dependencies> ``` 接下来,我们需要配置...
<groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.4.1</version> </dependency> </dependencies> ``` 接下来,创建一个`generatorConfig.xml`配置文件,...
1. `<s:generator separator="" val=""></s:generator>`:配合`s:iterator`标签生成序列。 H部分: 1. `<s:head/>`:在HTML的`<head>`标签中使用,用于结束头文件。 2. `<s:hidden></s:hidden>`:创建隐藏域,用于...
<groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> </dependency> ``` 紧接着,需要在`build/plugins`部分配置MyBatis Generator的Maven...
1. <s:generator separator="" val=""></s:generator>----和<s:iterator>标签一起使用 H: 1. <s:head/>-----在<head></head>里使用,表示头文件结束 2. <s:hidden></s:hidden>-----隐藏值 I: 1. <s:...
<groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.4.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.mybatis....
<groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.6</version> <configuration> <!--配置文件的位置--> <configurationFile>GeneratorMapper...
<s:property /><br/> </s:iterator> </s:generator> <!-- 生成包含前三个元素的迭代器 --> <s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="3"> <s:iterator> <s:property /><br/> </s:iterator> </s...
<groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.4.1</version> <configuration> <configurationFile>src/main/resources/generatorConfig.xml...
<groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.4.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.mybatis....
<s:property value="name"/> (index: <s:property value="%{#status.index}"/>)<br/> </s:iterator> ``` ##### 25. `<s:label>` —— 标签 - **功能**:创建一个只读的标签。 - **示例**: ```xml <s:label ...
<groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.4.1</version> <scope>compile</scope> </dependency> ``` 然后,创建一个MBG的配置文件`...
<groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.4.1</version> </dependency> </dependencies> ``` 随后,需要创建一个配置文件`generatorConfig....