我正在处理混合的情况,我正在使用Servlets和Struts2.
我正在调用HTTPServlet以及我正在处理数据的地方.
然后我需要调用struts API来在DB中插入数据.
在那我也使用HTTPSession.
所以我在打电话
ServletActionContext.getRequest()
Run Code Online (Sandbox Code Playgroud)
在struts动作类中获取HttpRequest然后进行会话.
Struts Action类被Servlet调用.
但
ServletActionContext.getRequest()
Run Code Online (Sandbox Code Playgroud)
总是返回NULL.
是因为它没有被网络调用.
什么是我可以下载的开源Struts2/Spring/Hibernate项目,它们实现了许多最佳实践并具有相对较高的代码质量?
我正在关注Struts 2教程 - 使用Struts 2标签
到目前为止,所有内容都按预期工作,直到我将以下内容添加到index.jsp:
<s:url action="hello" var="helloLink">
<s:param name="userName">Bruce Phillips</s:param>
</s:url>
<p><a href="${helloLink}">Hello Bruce Phillips</a></p>
Run Code Online (Sandbox Code Playgroud)
预期的结果是锚链接(Hello Bruce Phillips)应该用hello.action的相应URL替换参数userName encoded,但不会发生替换,这就是元素呈现的方式:
<p>
<a href="${helloLink}">Hello Bruce Phillips</a>
</p>
Run Code Online (Sandbox Code Playgroud)
我的语法有什么问题吗?
环境:
如果有人知道,如何在struts2中使用jsp迭代字符串列表.
(我想在jsp中显示列表的值)
请帮我..
它非常简单但不知何故不起作用(怪异!!).
我有一个类类型的列表.我在for循环中将对象添加到列表中.直到添加对象一切正常,但是一旦我尝试访问列表,只显示最后一个对象的值(参考我在下面显示的输出).这里还有代码:
List<myClass> myClassList = new ArrayList<myClass>();
myClass myClassObj = new myClass();
for(int i=0;i<someArray.length;i++){
myClassObj.setProperty1("value1");
myClassObj.setProperty2("value2");
myClassObj.setProperty3("value3");
...
...Others
...
System.out.println(myClassList.add(myClassObj));////////////////////////
}
System.out.println(myClassList.size());/////////////////////////////////////
for(int i=0;i<myClassList.size();i++){
System.out.println(myClassList.get(i).getProperty1());/////////////////
.....
.....Others
.....
}
Iterator<myClass> mcItr = myClassList.iterator();
while(mcItr.hasNext()){
myClass obj = mcItr.next();
System.out.println(obj.getProperty1());
.....
.....Others
.....
}
Run Code Online (Sandbox Code Playgroud)
该程序的输出是(如果大小someArray为5):
//'true' --> 5 times. Printed by the 'add' statement as it returns 'true' when everything is OK
//5 --> Size of 'myClassList' this is also OK
//Here the values …Run Code Online (Sandbox Code Playgroud) 我正在使用struts2 for Action和jquery for UI ...
我想知道如何将Map对象转换为JSON对象并将其发送回UI,
现在能够在JSP页面中打印普通的Java Map对象:
{71=Heart XXX, 76=No Heart YYY}
Run Code Online (Sandbox Code Playgroud)
但我希望它是这样的:
{71:Heart XXX, 76:No Heart YYY}
Run Code Online (Sandbox Code Playgroud)
我将如何实现这一目标......?
我使用Struts2框架.在jsp中,我在项目中显示一个登录框,当用户点击登录按钮时,我设置了一个名为"loggedin"的cookie,并在Action类中将其值设置为"true".
然后返回"success"将再次加载此登录页面.
在登录页面中:
<body>
<%
Cookie cookie[] = request.getCookies();
for( c : cookie )
{
if( c.getName().equals("loggedin") )
{
if( !c.getValue().equals("true") )
{
%>
//show login form here.
<%
}//end inner if
else //if cookie "loggedin" value is "true"
{
%>
//show username/profile picture/logout button here
<%
}//end else
}//end outer if
}/end for loop
%>
</body>
Run Code Online (Sandbox Code Playgroud)
我遇到了问题.当我单击登录表单中的登录按钮时,将设置cookie并重新加载页面.但是,在我手动重新加载页面之前,登录表单仍然显示,而不是用户名/个人资料图片.
我正在使用Struts 2创建一个Web应用程序.我有一个登录页面.当用户在输入用户名和密码后单击登录按钮时,将检查凭据,如果发现凭据正确,则会创建会话并设置其属性,并将控制重定向到WELCOME JSP.
在welcome.jsp打开之前,我想检查是否设置了会话属性.如何在Struts 2中做到这一点?
任何人都可以告诉我拦截器的概念.我读到我们创建拦截器以在调用动作之前或之后执行任何功能.我是否可以在每次调用WELCOME JSP之前创建一个检查会话是否已设置的拦截器.
验证可以正常使用所需的字符串(和电子邮件,我测试了这些).但是当我尝试使用正则表达式时,验证没有任何效果.
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<field name="cognome">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>Cognome è un campo obbligatorio</message>
</field-validator>
</field>
<field name="telefono">
<field-validator type="requiredstring">
<message key="errors.required" />
</field-validator>
<field-validator type="regex">
<param name="expression">[0-9]{9,15}</param>
<message>Il numero di telefono deve essere minimo di 9 cifre
</message>
</field-validator>
</field>
</validators>
Run Code Online (Sandbox Code Playgroud)
telefono必须有9到15位数字.当字段丢失时会出现错误,如果我插入像"123"这样的telefono则没有错误.
jsp:
<%@ page language="java" contentType="text/html;"
import="java.util.*,it.almaviva.bean.*,it.almaviva.delegate.*;"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link href="${pageContext.request.contextPath}/css/stile1.css" rel="stylesheet" type="text/css" />
<title>Registrazione account</title> …Run Code Online (Sandbox Code Playgroud) 我使用以下命令显示'userList'中的值
<s:iterator value="userList" status="rowStatus">
<tr class="even">
<td><s:property value="tweet_id" /></td>
<td><s:property value="message" /></td>
<td><s:property value="created" /></td>
</tr>
</s:iterator>
Run Code Online (Sandbox Code Playgroud)
什么是使用status="rowStatus"这个命令?