我正在学习Struts2,但我并不完全清楚如何以及何时使用标签
我发现一篇文章概述了这些差异,但没有提供任何示例。
http://struts.apache.org/development/1.x/struts-taglib/tlddoc/bean/define.html
<代码>
无条件地在指定标识符下创建(或替换)bean
可以使用不同bean的属性getter返回的值创建bean(包括使用嵌套和/或索引属性名称引用的属性)
可以创建一个bean,其内容是value属性指定的文本字符串(或运行时表达式的结果)
不支持仅在实际创建bean时才执行的嵌套内容(如jsp:setProperty标记)
下面是我使用UseBean标记的快速测试代码。谁能给我举个例子,说明我应该如何/为什么(或是否)使用Struts bean:。。。显示中的标签。而是jsp?
索引。jsp
:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form name="input" action="TestServlet" method="post">
<input type="text" name="txtFirstName" placeholder="First Name">
<input type="text" name="txtLastName" placeholder="Last Name">
<input type="submit" value="Submit">
</form>
</body>
</html>
TestServlet。java
:
package com.website.servlets;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.website.models.Person;
/**
* Servlet implementation class TestServlet
*/
@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public TestServlet() {
super();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String fname = request.getParameter("txtFirstName");
String lname = request.getParameter("txtLastName");
Person p = new Person();
p.setFirstName(fname);
p.setLastName(lname);
request.setAttribute("myPersonObj", p);
RequestDispatcher rd = request.getRequestDispatcher("display.jsp");
rd.forward(request, response);
}
}
display.jsp
:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="myPersonObj" class="com.website.models.Person" scope="request"></jsp:useBean>
<p>
Full Name : <jsp:getProperty property="firstName" name="myPersonObj"/>
<jsp:getProperty property="lastName" name="myPersonObj"/>
</p>
</body>
</html>
你应该使用struts2标签,它们支持OGNL。OGNL有一个上下文和一个作为根对象的值堆栈。因此,您的请求范围对象显示为
<p>
Full Name : <s:property value="#request.myPersonObj.firstName"/>
<s:property value="#request.myPersonObj.lastName"/>
</p>
要更好地理解OGNL概念,请参阅文档。
因为您实际上是在servlet中创建bean,并将其放在请求属性中,所以您可以替换:
<jsp:useBean id="myPersonObj" class="com.website.models.Person" scope="request"></jsp:useBean>
<p>
Full Name : <jsp:getProperty property="firstName" name="myPersonObj"/>
<jsp:getProperty property="lastName" name="myPersonObj"/>
</p>
与(使用EL):
<p>
Full Name : ${myPersonObj.firstName}
${myPersonObj.lastName}
</p>
请参阅SO上的Servlet信息页面:
不要使用
因为
<jsp:useBean>标签用于在指定的范围(pageContext、request、session和application)中查找一个指定名称的Java对象,如果在指定的范围存在该对象,则<jsp:userBean>标签直接返回该对象的引用,否则创建一个新的对象,并将这个新对象存储在指定的范围。 <jsp:useBean>标签的id属性用来指定对象名,class属性用来指定要查找或创建的对象所
本文向大家介绍Java的Struts框架中append标签与generator标签的使用,包括了Java的Struts框架中append标签与generator标签的使用的使用技巧和注意事项,需要的朋友参考一下 append 标签: 这些append标签需要两个或两个以上的列表作为参数,并追加它们放在一起,如下图所示: 如果有两个列表A和B的值A1,A2和B1,B2。合并列表,会给你的A1,A2,
Struts Plus, Struts + 项目, 计划包含极速表单验证框架, 权限管理等子模块. 目前主要关注于 Struts 2 方面的生产力提高项目, 主要基于注解方式进行增强, 并提供抽象层, 使项目仅仅依赖于 Struts 本身, 而不需要强制您使用某种业务层和数据层框架.
我可以在Struts2中的s:property标记中使用s:text标记吗。问题是,我的操作类中有一个 映射以的形式具有键/值,实际上映射中存在的值是文件中存在的键。请参阅下面的 这是我的application.properties文件 现在,我想在我的jsp中迭代这个映射,并希望通过在application.properties文件中将映射的值作为键传递,从属性文件中获得这些值,并将它们显示为标
当我将自动拦截器(interceptor-ref name=“autowiring”)放入spring.xml中的action标记时,index.jsp中的struts标记无法与该action类的setter映射。当我从action标记中删除自动标记时,在这种情况下,jsp的struts标记能够与action类的setter映射。 任何来自你方面的帮助都是非常受欢迎的。如果你需要任何类型的例子,然