标签: struts2

如何从jsp向Struts2动作输入Date?

我在jsp页面中遇到了很多问题.我应该用什么标签从用户那里获取日期(yyyy-MM-dd)并将其存储在Struts2动作的Date属性中?

我的操作中的属性声明为java.util.Date.我希望jsp页面的输入落在这个属性中.

请帮忙.

我得到无效字段错误(在JSP中),如果用作:textfield标签,以正确的格式输入日期.

java jsp struts2

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

MissingResourceException - 找不到基本名称的包

我知道在stackoverflow和其他论坛上有很多关于这个错误的问题和答案.但我还是找不到解决方案......

出于速度原因,我有一个实用程序类,它根据提供的语言环境加载所有静态数据映射(例如几个月).

所以这个实用程序类看起来像这样:

public static final String GLOBAL_MESSAGES = "globalMessages";

private static Map<Integer,Month> monthsMap;

private ResourceBundle getResourceBundle(Locale locale) {
    ResourceBundle rb = ResourceBundle.getBundle(GLOBAL_MESSAGES, locale);
    return rb;
}

private Map<Integer,Month> getMonths() {
    if(monthsMap == null) {
        setMonths();
    }
    return monthsMap;
}

private void setMonths() {
    try {
        monthsMap = getFactory().getDAO().getAllMonths();
    } catch (SQLException e) {
        logger.error(e);
    } catch (EmptyResultException e) {
        logger.error(e);
    }
}

public Map<Integer,Month> getMonths(Locale locale) {
    if(locale == null) {
        return monthsMap;
    } else {
        if(this.locale != locale) …
Run Code Online (Sandbox Code Playgroud)

java locale bundle struts2 properties

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

Struts 2中的Json插件问题

我有以下代码,我将实现/ getJson将返回用户对象的功能,因为json和/ getJson2将返回user2作为Json对象.

@ParentPackage("json-default")
public class JsonAction extends ActionSupport{
private User user = new User("John","Smith"); 
private User user2 = new User("Smith","John"); 
public String populate(){

    return "populate";
}

@Action(value="/getJson", results = {
        @Result(name="success", type="json")})
public String test(){
    return "success";
}

@Action(value="/getJson2", results = {
        @Result(name="success", type="json")})
public String test2(){
    return "success";
}

@JSON(name="user")
public User getUser() {
    return user;
}

public void setUser(User user) {
    this.user = user;
}

@JSON(name="user2")
public User getUser2() {
    return user2;
}

public void setUser2(User user2) …
Run Code Online (Sandbox Code Playgroud)

java ajax json struts2

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

如何选择正确版本的弹簧,支柱和休眠,有什么区别?

我想选择最新的框架来集成spring,struts和hibernate,但似乎那里有很多版本,而且它们的api也不同,所以我很困惑,如何选择合适的版本来集成它们呢?它们之间的区别是什么?

例如,我可以进行以下集成:Spring Framework 3.0 Struts 2.0 Hibernate 3.2

由于我是这些框架的新手,请指出正确的方向,让我知道如何选择正确的版本?

提前致谢 !

java spring hibernate struts2

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

Struts 1.x vs Struts 2.x.

我已经回顾了一些关于SO的Struts 1 vs 2问题,但似乎没有人从我正在考虑的角度回答这个问题.

我即将开始构建一个新系统,对一个非常古老的桌面应用程序进行全面的重新设计.目标是使其基于Web,添加更多功能,使其更有用等(通常的再造原因).

开发该系统的团队主要是Java开发人员,过去5年来一直在Struts 1.x上工作.

该系统计划在未来许多年内存在,因此在更好的框架出现的3 - 5年内再次重新设计的想法不是一种选择.它并不打算大量使用AJAX.

我的问题是,当我的团队对Struts 1.x有如此丰富的经验时,为什么我会费心去Struts 2.我知道有一些改进,但我担心让团队加快速度,因错误使用等而导致返工的时间将远远超过我们从Struts 2获得的任何好处.我们喜欢Struts 1,它做的就是我们需要它,所有的设计模式,标准,最佳实践等都已到位.

Struts 2是否有任何杀手级功能或Struts 1中我不知道的严重问题会影响继续使用Struts 1的决定.

java struts2 struts-1

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

如果结果类型是json,则Struts2动作被调用两次

我有一个Action类,有4个动作方法.所有四种动作操作方法都使用json结果.

通过记录语句和调试,我已经验证了如果我调用action方法1,也会调用action方法2和3.但不是4.最后,再次调用action方法1并生成json结果

如果我将Action方法1的结果类型更改为具有jsp位置的默认调度程序,则仅调用操作方法1.(这是我想要的json结果的行为)希望这是有道理的.

有人有主意吗?这个问题在这里被问到/sf/ask/263738891/

但没有答案.如果您需要更多信息,请与我们联系.

@ResultPath("/WEB-INF/jsp/dta/")
public class GroupEntityAction extends BaseAction {
    /**
     * 
     */
    private static final long serialVersionUID = 6750675222824235086L;
    private static Logger log = Logger.getLogger(GroupEntityAction.class);

    private List<EntityBusiness> theUnusedEntityBusinessList;
    private String assignedEntities[];
    private long groupId;
    private long businessId;
    private String parentMe;
    private long rptYear;
    private String ssoId;
    private String isSubmitted;

    private String delimGoLiveEmails;
    private List<String> theEmailList;

    @Action(value = "ajaxGetAvailableEntityList",
            results = { @Result(name = "success", type = "json") }
            ,
            interceptorRefs = { @InterceptorRef("dtaStack"),
                    @InterceptorRef(value = "dtaStack", …
Run Code Online (Sandbox Code Playgroud)

json struts2 struts2-config-browser

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

通过JSON从Handsontable检索数据到Struts2 Action无法正常工作

我使用struts2-json插件生成JSON数据和Ajax,用来自该JSON的数据(根据源)填充表(handsontable ).

现在,我需要使用JSON的Ajax从表中检索数据到Struts2 Action.首先,我已经使用JSON从Struts2 Action传递给Handsontable的数据实现了填充表,这非常简单且有效.但为什么保存不起作用,你可以在下面的附加代码中看到?

正如我在firebug中看到的那样发送了POST,并且在调试中,我的JSONSaveAction操作中检索到了请求,但是字段数据没有填充JSON数据,为什么?不应该通过struts2-json插件自动将数据绑定到java对象?我究竟做错了什么?

在handontable部分,该函数handsontable.getData()负责从表中获取整个数据.所以我这样使用它但没有成功:

$.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');
            }
            else {
                $console.text('Save error');
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

该函数handsontable.getData()实际上检索了我检查的所有数据,但是List<Report> data在我的JSONSaveAction操作中数据没有绑定到java对象.你知道为什么吗?

这是POST请求后我的表和firebug信息的屏幕截图: 在此输入图像描述

将JSON发送到handontable的动作(正常工作):

@ParentPackage("json-default")
@Action(value="getJSONDataAction")
@Result(name="success", type="json")
public class JSONDataAction extends ActionSupport {
    private static final long serialVersionUID = 1L;

    private List<Report> data = new ArrayList<Report>();

    public JSONDataAction(){
        data.add(new Report(1, "Chris", …
Run Code Online (Sandbox Code Playgroud)

ajax jquery struts2 handsontable struts2-json-plugin

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

Struts2令牌拦截器:CSRF保护

我试图通过使用struts令牌拦截器保护我的Web应用程序免受CSRF攻击.

我现在面临的问题是我们的JSP页面对服务器进行了多次调用(当JSP被转换为JS时,一个struts令牌被添加到JS.But,在这个JS中有多个Ajax请求.我希望我自己清楚.),因为令牌拦截器只对服务器的第一次请求得到验证.其他请求将失效,因为struts令牌在每次验证后都会重置.

有没有办法阻止Struts每次验证时重置令牌?是否有任何其他解决方案来处理struts拦截器.

我也在看tomcatcsrfprotection模块,我想我最终也会遇到同样的问题.

managepage.jsp:

<s:token />
<script type="text/javascript">
var strutsToken = "<s:property value="#session['struts.tokens.token']" />";
var requestParams = {mainAction: 'loadGroups','struts.token.name': 'token' , token:strutsToken};

Ext.Ajax.request({
              url: 'manageUserAccount.action',
              params: Ext.urlEncode(requestParams),
              disableCaching: true,
              success: this.actionCallback
              });



//loading widgets

var requestParams = {mainAction: 'loadusers','struts.token.name': 'token' , token:strutsToken};

Ext.Ajax.request({
              url: 'manageUserAccount.action',
              params: Ext.urlEncode(requestParams),
              disableCaching: true,
              success: this.actionCallback
              });

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

Struts.xml:

  <action name="manageUserAccountEdit" class="ManageUserAccountEditAction">
     <interceptor-ref name="csrf-protection" /> 
     <result name="success">/pages/manageUserAccount.jsp</result>
 </action>
Run Code Online (Sandbox Code Playgroud)

我刚刚添加了最少的代码,以便更容易理解它.

javascript java jsp struts2 csrf-protection

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

无法将Struts2结果类型设置为json

我想在Struts2中使用json.但是,当我将动作返回类型设置为"json"时,我得到"没有为类型'json'定义的结果类型,其名称为'success'." Bellow是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.custom.i18n.resources" value="resource"/>

    <package extends="struts-default" name="test">
        <action name="inputHandler" class="inputHandlerAction">
            <result name="input">/index.jsp</result>
            <result>/result.jsp</result>
        </action>
        <action name="setLangHandler" class="com.sesoft.test.setLanguageHandler">
            <result>/index.jsp</result>
        </action>

        <action name="Handler" class="com.sesoft.test.Handler">
            <result>/test2.jsp</result>
        </action>   
    </package>

    <package name="example" extends="json-default">

        <action name="ajaxHandler" class="com.sesoft.test.AjaxHandler">
            <result name="success" type="json" />
        </action>

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

在我添加json Action之前,所有其他操作都运行良好.但是在我添加json Action之后,服务器无法执行错误代码503.

libs我已将"jsonplugin-0.33.jar"添加到lib目录中.

json struts2

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

Struts2如何为移动和桌面创建多个视图

我正在创建一个可通过移动和桌面设备访问的网站.所以我想创建我的应用程序的2个视图.我的操作代码和后端中的所有其他内容(管理员,DAO)是相同的.只是JSP改变了两者.

我如何通过Struts 2做到这一点?

struts2

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