标签: struts2

ServletActionContext.getRequest()返回NULL

我正在处理混合的情况,我正在使用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.

是因为它没有被网络调用.

servlets struts2

1
推荐指数
1
解决办法
5164
查看次数

具有高代码质量的开源Struts2/Spring/Hibernate项目?

/sf/ask/10016191/的行中

什么是我可以下载的开源Struts2/Spring/Hibernate项目,它们实现了许多最佳实践并具有相对较高的代码质量?

spring hibernate struts2

1
推荐指数
1
解决办法
6670
查看次数

Struts 2 URL不会替换正确的值

我正在关注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)

我的语法有什么问题吗?

环境:

  • 在GlassFish 2.1和3.1.1中都尝试过同样意想不到的结果.
  • Struts 2.2.3.1
  • Mac(狮子)与java6 jdk
  • 标签定义:<%@ taglib prefix ="s"uri ="/ struts-tags"%>

java jsp struts struts2

1
推荐指数
1
解决办法
778
查看次数

如何使用struts2 Iterator迭代List <String>

如果有人知道,如何在struts2中使用jsp迭代字符串列表.

(我想在jsp中显示列表的值)

请帮我..

java jsp struts2

1
推荐指数
1
解决办法
2万
查看次数

Java:将对象添加到对象列表中

它非常简单但不知何故不起作用(怪异!!).

我有一个类类型的列表.我在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)

该程序的输出是(如果大小someArray5):

    //'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)

java struts2

1
推荐指数
1
解决办法
213
查看次数

将Java对象转换为JSON?

我正在使用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)

我将如何实现这一目标......?

javascript jquery json struts2

1
推荐指数
1
解决办法
1万
查看次数

如何检查用户是否已登录Java EE

我使用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并重新加载页面.但是,在我手动重新加载页面之前,登录表单仍然显示,而不是用户名/个人资料图片.

  1. 我怎么解决这个问题?
  2. 我认为这不是检查登录的正确方法.有人可以告诉我如何以另一种方式检查这个吗?

java struts2

1
推荐指数
1
解决办法
1390
查看次数

检查Struts 2 Web应用程序中的会话值

我正在使用Struts 2创建一个Web应用程序.我有一个登录页面.当用户在输入用户名和密码后单击登录按钮时,将检查凭据,如果发现凭据正确,则会创建会话并设置其属性,并将控制重定向到WELCOME JSP.

welcome.jsp打开之前,我想检查是否设置了会话属性.如何在Struts 2中做到这一点?

任何人都可以告诉我拦截器的概念.我读到我们创建拦截器以在调用动作之前或之后执行任何功能.我是否可以在每次调用WELCOME JSP之前创建一个检查会话是否已设置的拦截器.

java authentication session jsp struts2

1
推荐指数
1
解决办法
1万
查看次数

Struts2验证不仅适用于正则表达式

验证可以正常使用所需的字符串(和电子邮件,我测试了这些).但是当我尝试使用正则表达式时,验证没有任何效果.

<!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)

java regex validation jsp struts2

1
推荐指数
1
解决办法
1860
查看次数

<s:iterator>中的"status"有什么作用?

我使用以下命令显示'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"这个命令?

jsp iterator struts2

1
推荐指数
2
解决办法
2万
查看次数