标签: struts2

你如何遍历对象列表?

我有一个User类,其中包含一个String用户名.我有一个用户列表,我试图在表中使用

                         <s:iterator value="users" id="list">
                                <tr>
                                    <td><s:property value="#list.username" /></td>
                                    <td></td>
                                    <td></td>
                                    <td></td>
                                </tr>
                         </s:iterator>
Run Code Online (Sandbox Code Playgroud)

行正在显示正确的次数,因此它正在迭代我的列表.但是,我不知道如何访问username属性来显示它.显然我上面所说的不正确......有什么想法吗?

iterator struts2

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

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

从Struts 1.2迁移 - > Struts2与Spring-MVC(主要是对Struts1.2 taglib支持)

主要问题:如果我的应用程序当前正在使用Struts 1.x - 并且我正在考虑迁移到用于MVC框架的EITHER Spring-MVC或Struts2 - 是否有任何一个可以更容易从Struts1.2迁移?

为了澄清,我不是在问SpringMVC或Struts2是否总体上更好(SO上有许多现有的Q来解决这个问题) - 从Struts1.2迁移到哪一个更容易.

从迁移的角度来看,我最感兴趣的一点是:在JSP页面中继续(在开始时)继续使用struts1.x的taglib,同时在后端更改为Struts2(或SpringMVC)的API.(换句话说,这些框架中的任何一个都可以支持Struts1.x的taglib作为插件)吗?[注意:这不是一个长期的解决方案 - 但会减少集成的痛苦,因为JSP不需要立即重写.我认为这个问题是有道理的 - 如果没有,请说明为什么]

话虽如此,我当然对任何其他迁移优势感兴趣.


一些背景:

我正在开发一个应用程序,其MVC层是通过Struts 1.2编写的.我们也使用Spring IOC - 尽管该应用程序目前还没有Struts层和Spring的DI设备之间的强大集成.(注意:这是我们在重构时计划纠正的内容,但我的理解是通过一些规划 - 即使使用Spring IOC + Struts2组合也可以正确/有效地完成.)

作为改进/重构代码库的一部分 - 我们希望升级到更现代的MVC框架(以便消除对Action/Form类的需求,并在可能的情况下使用基于Annotation的配置等)但保持整体经典-MVC风格(即目前没有兴趣跳跃到JSF,Tapestry,GWT,Flex,Play等等.我明白这些是非常不同的东西 - 将它们混为一谈只是为了给出一个大致的想法..)此外,我的愿望是采用具有合理牵引力/动力的东西 - 因此为此推定Stripes.这似乎只是让Spring-MVC和Struts2成为竞争者(尽管如果有其他类似风格和强大的行业牵引力 - 我们肯定会考虑它)

可以切换到其中任何一个都需要下降工作量 - 但计划是在模块化水平上进行.出于这个原因,如果其中任何一个支持Struts 1.2的taglib - 它将使切换/测试更容易(因为我们可以在新API中编写特定模块的"Control"实现 - 并让第二个服务器运行旧的Struts1 .2使用相同的jsps实现.QA测试在某种程度上将是"苹果到苹果".这是否有意义,或者这种方法(如果可行的话)会导致比解决更多的麻烦?

另外,如上所述,虽然我的主要问题是使用Spring-MVC或Struts2运行struts1.2的taglib - 我也对Struts2-vs-Spring-MVC的任何其他MIGRATION优势感兴趣.

java migration struts2 spring-mvc struts-1

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

如何在第一次显示时告诉Struts2不验证表单?

我目前正在尝试学习Struts2.

我创建了一个表单,一个处理它的动作,一个用于验证它的XML,以及struts.xml中的操作.

每次表单显示时,即使是第一次,Struts2也会尝试验证,因此在用户有机会完成错误之前会显示错误.

这是相关代码:

<!-- /WebContent/views/user/login.jsp -->
<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ 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>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login Page</title>
<s:head />
</head>
<body>
    <h1>Login Page</h1>
    <s:form action="executeUser">
        <s:textfield key="userBean.userName" />
        <s:password key="userBean.password" />
        <s:submit align="center" />
    </s:form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
<!-- /src/struts.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <constant name="struts.devMode" value="true" />

    <package …
Run Code Online (Sandbox Code Playgroud)

java validation jsp struts2

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

Struts Hello world示例:没有映射名称空间[/]和操作名称错误的Action

我绝对是Struts2的初学者.我想跟随struts网站上的教程.我按照本教程.我有点麻烦.我在eclipse上创建了动态web项目.然后我按照教程.但是,当我运行该示例时,我收到以下错误.

There is no Action mapped for namespace [/] and action name [hello] associated with context path [/Hello_World_Struts_2]. - [unknown location]
Run Code Online (Sandbox Code Playgroud)

我有以下目录结构

在此输入图像描述

我的struts.xml文件是

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

  <constant name="struts.devMode" value="true" />

  <package name="basicstruts2" extends="struts-default" namespace="/">

  <action name="index">
    <result>/index.jsp</result>
  </action>

  <action name="hello" class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute">
    <result name="SUCCESS">/HelloWorld.jsp</result>
  </action>

</package>

</struts>
Run Code Online (Sandbox Code Playgroud)

谢谢你的回复.

struts2 struts2-namespace action-mapping

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

Struts2从JSP访问枚举

我有以下课程

package com.test;

public class SomeClass {
   public enum COLOR {RED,BLUE}
}
Run Code Online (Sandbox Code Playgroud)

我想COLOR在JSP中访问枚举值.我尝试了以下代码,但它不起作用.

<s:property value="@com.test.SomeClass.COLOR@RED"/>
<s:property value="@com.test.SomeClass@COLOR.RED"/>
Run Code Online (Sandbox Code Playgroud)

以前有人问过这个问题吗?[我已经在struts.xml中启用了静态方法访问]

enums jsp struts2 ognl

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

如何使用Hibernate获取最后插入的id

我想在Hibernate中获取最后插入的值的id.

搜索后:

Long lastId = ((Long) session.createSQLQuery("SELECT LAST_INSERT_ID()").uniqueResult()).longValue();
Run Code Online (Sandbox Code Playgroud)

但是下面的代码给了我这个错误:

java.lang.ClassCastException:java.math.BigInteger无法强制转换为java.lang.Long

请分享你的想法!

Long lastId = ((BigInteger) session.createSQLQuery("SELECT LAST_INSERT_ID()").uniqueResult()).longValue();
Run Code Online (Sandbox Code Playgroud)

别忘了导入:

import java.math.BigInteger;

java mysql hibernate struts2

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

org.apache.struts2.json.JSONException:属性的不兼容类型

我收到一个java.util.List<Object[]>via JSON-rpc作为JavaScript数组,如下所示.

[
    [1, 0.10, 1.00],
    [2, 0.20, 2.00],
    [3, 0.30, 3.00],
    [4, 0.40, 4.00],
    [5, 0.50, 5.00],
    [6, 0.60, 6.00],
    [7, 0.70, 7.00],
    [8, 0.80, 8.00],
    [9, 0.90, 9.00],
    [10, 1.00, 10.00],
    [11, 1.10, 11.00],
    [12, 1.20, 12.00],
    [13, 1.30, 13.00],
    [14, 1.40, 14.00],
    [15, 1.50, 15.00],
    [16, 1.60, 16.00],
    [17, 1.70, 17.00],
    [18, 1.80, 18.00]
]
Run Code Online (Sandbox Code Playgroud)

我需要将同一个数组传递回服务器(在最后一个维度稍作修改).

我使用以下函数发回这个数组.

var request;
var timeout;
var itemsArray=[];

function insert()
{
    if(!request)
    {
        var i=0;

        $('input[name="txtCharge[]"]').each(function()
        {
            isNaN($(this).val())||$(this).val()===''?itemsArray[i][2]='':itemsArray[i][2]=eval(eval($(this).val()).toFixed(2));
            i++;
        }); …
Run Code Online (Sandbox Code Playgroud)

jquery json struts2 json-rpc struts2-json-plugin

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

使用Struts 2和Struts的cookie

我有以下(缩短)struts2动作:

public class MyAction extends BaseAction implements CookiesAware {

  public String execute() {

    if (cookiesMap.containsKey("BLAH"))
      blah=Integer.parseInt(cookiesMap.get("BLAH"));

      return "success";
  }

  // For handling cookies
  Map<String, String> cookiesMap;
  @Override
  public void setCookiesMap(Map<String, String> cookiesMap) {
    this.cookiesMap = cookiesMap;
  }
}
Run Code Online (Sandbox Code Playgroud)

当我执行'cookiesMap.containsKey'时,我得到一个空指针异常 - 在我看来,没有调用setCookiesMap.我已经实现了CookiesAware界面,所以我认为它应该被调用 - 我错过了什么吗?

谢谢

java cookies struts2

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

如何使用struts2-json-plugin将JSON绑定到Struts2中的Java对象

我想将JSON反序列化(绑定)到java对象.如何在Struts2中做到这一点?

我正在尝试使用struts2-json-plugin,你可以在下面的代码中看到,但是从前端发送的JSON没有绑定到我的java对象.你能帮我吗,请问如何使这段代码正常工作?

请看一下我的Action类,我不确定我是否在这个Action中正确处理JSON,或者我错过了什么?

我试图绑定的JSON:

{"data":[
    {"active":true,"color":"orange","date":"2008-01-01","id":1,"name":"Chris"},
    {"active":false,"color":"blue","date":"2013-03-03","id":2,"name":"Kate"},
    {"active":true,"color":"black","date":"2013-05-03","id":3,"name":"Blade"},
    {"active":false,"color":"yellow","date":"2013-01-01","id":4,"name":"Zack"}]
}
Run Code Online (Sandbox Code Playgroud)

通过Ajax发送JSON:

$.ajax({
  url: "../json/saveJSONDataAction.action",
  data: {"data": handsontable.getData()}, //returns all cells' data
  dataType: 'json',
  type: 'POST',
  success: function (res) {
    if (res.result === 'ok') {
      $console.text('Data saved');
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

在Struts2中接收JSON:

我可以在调试中使用execute()方法,但不幸的data是,该字段始终为null.我应该怎么做才能使这个字段充满JSON的数据?JSON的格式是否正确绑定到List<Report> data

@ParentPackage("json-default")
@Action(value="saveJSONDataAction")
@Result(type="json")
public class JSONSaveAction extends ActionSupport {
    private static final long serialVersionUID = 1L;

    private List<Report> data;

    public JSONSaveAction(){
    }

    public String execute() {
        try {
            System.out.println(data);
        } catch (Exception e) …
Run Code Online (Sandbox Code Playgroud)

java struts2 struts2-json-plugin

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