标签: struts2

春天的父母和孩子的资源

我使用spring + struts2,我有大量需要单个服务(mailService)的动作类.我想知道有没有办法创建父类并注入资源,然后让所有这些类扩展父类,而不是将服务注入这些操作类.所以我不需要在每节课中重复注射.

提前致谢

spring struts2

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

JSF和struts2失败/货物的地方

我是一个网络系统,无法决定使用什么技术!Struts2和JSF(带jboss接缝)是一个不错的选择,但我无法决定哪个更好.在JSF中有一些我不喜欢的,也许它的"范式"没有动作就好.而Struts2,这里的人们不会使用更多.

该系统是地图协作网站.

jsf struts2 choice

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

使用带有约定插件的struts.xml

这看起来应该很容易,但我可以让它工作.我迷上了Struts 2.1中的约定插件.但是,我需要定义一些包级配置,例如新的拦截器堆栈和异常映射.我想为此使用struts.xml文件,但我无法获得与struts.xml包匹配的基于约定的包.我的struts.xml看起来像:

<struts>
<constant name="struts.convention.default.parent.package" value="default"/>  
<package name="default" extends="struts-default">
</package>
<package name="root" namespace="/" extends="struts-default">
    <action name="index">
        <result>/index.jsp</result>
    </action>
</package>

<package name="my.package.actions.myaccount" namespace="/myaccount" extends="struts-default">
<interceptors>
    <interceptor name="authenticationInterceptor" class="my.package.interceptors.AuthenticationInterceptor"/>
    <interceptor-stack name="secureStack">
        <interceptor-ref name="authenticationInterceptor"/>
        <interceptor-ref name="defaultStack"/>
    </interceptor-stack>
</interceptors>

    <default-interceptor-ref name="secureStack"/>
</package>
</struts>
Run Code Online (Sandbox Code Playgroud)

我的拦截器位于:
/src/my/package/interceptors
,我的操作位于:
/src/my/package/actions/myaccount

convention struts2 java-ee

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

ModelDriven和Prepare的顺序?

我把println()每个方法都放在Action类中.

public String execute() throws Exception {
  System.out.println("execute");
  //...
 }
 public void prepare() throws Exception {
  System.out.println("prepare");
  //...
 }
 public Object getModel() {
  System.out.print("getModel");
  //...
 }
Run Code Online (Sandbox Code Playgroud)

我以为订单会是; 准备→执行→getModel.

因为我记得我在书中读过它,所以我习惯构造bean类并做一些逻辑prepare(),然后返回SUCCESS execute().我认为getModel用于将bean推送到valueStack,对吧?

......无论如何,控制台告诉我这个.这很奇怪; 准备→getModel→执行.

这对我来说是一个巨大的问题.用英语解释原因很难......但我会试试!

我曾经创建过处理相同bean的每个动作类,当然每个动作类中都有相同的代码(变量,它们的getter和setter).

现在我正在尝试创建一个操作来避免重复.这个动作类有几个方法(像这样在struts.xml中映射; <action name="View_board" method="view">).

正如我们在控制台中看到的那样,view()在动作类的最后一个调用它execute().该prepare()不会只是构建豆和view()做真正的就业机会.但是getModel()在调用之前调用view(),所以没有机会将bean放到ValueStack.

我希望你们明白我要解释的是什么.

总结一下,每个动作类都像BoardView,BoardDelete,BoardWrite ......它们运作良好!但我讨厌那些重复的东西,所以我创建了BoardManager类.这个类有每个方法(比如view())由类处理(比如BoardView).但是这个view()是在调用之后调用的getModel(),所以bean(return of getModel())没有机会被推送到ValueStack.

请帮帮我.教我你在这个领域的专业知识.我正在自己开发这一切,这让我感觉很难受.

谢谢!!

model-driven struts2

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

我可以在点击html页面中的html链接时调用Struts2操作

我希望在点击html页面中的html链接时执行Struts2操作.我的第一个问题是,是否可以在html页面(而不是JSP)中执行Struts2操作?如果是,请查看下面的代码:

home.html的

HREF = "home.action"


在struts.xml

action name ="home"class ="com.struts.action.HomeAction"

      result name="Success">loginJSP.jsp
Run Code Online (Sandbox Code Playgroud)

*****web.xml*****我做了过滤映射,以便所有内容都转到Struts2

html java struts struts2

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

显示带有struts2和jsp的ArrayList

我正在尝试学习struts2,所以这是一个非常基本的问题.

我有一个页面input_database.jsp,以及它对应的类input_database.java

在类文件中,我有一个带有mutator和accessor的字符串的arraylist.我想在我的.jsp文件中显示它

我一直试图用a来做,但我认为我做的事情从根本上是错误的.

这是我一直试图在jsp文件中使用的代码.arraylist是一个名为query_data的私有字符串列表.我的最终目标是显示一个字符串arraylists的arraylist来显示我的select语句,但我需要先找出一些简单的字符串.如果有人知道我做错了什么,或者可以指出一个我忽略的教程,那就太棒了

谢谢

<s:iterator value="query_data" id="something">

            <s:property value="something"/><br />

</s:iterator>
Run Code Online (Sandbox Code Playgroud)

java struts struts2

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

Java构造函数

美好的一天!

我创建了重载构造函数如下:

public ContactsBean(String firstName, String lastName,
                String telNumber, String email) {
    this.id = count;
    count = count + 1;
    this.firstName = firstName;
    this.lastName = lastName;
    this.email = email;
    this.telNumber = telNumber;
}

public ContactsBean() {
    this.id = count;
    count = count + 1;
}
Run Code Online (Sandbox Code Playgroud)

我想自动增加id所以我使用了这个变量:

    private static int count;   
    private int id;
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我实例化时ContactsBean() contacts = new ContactsBean(),id的值增加2 .. 2,4,6,8 ...等.

为什么?如何将ID增量的自动编号设为1?

谢谢.

编辑:

行动:

private ContactsBean contacts = new ContactsBean();
private ContactsManager contactsManager = new ContactsManager();

    public …
Run Code Online (Sandbox Code Playgroud)

java constructor struts2

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

在Struts2中显示验证错误消息

我是Struts 2的新手,之前曾在Struts 1工作。

我们如何将错误消息与UI组件(例如,文本框)绑定在一起?我不希望该错误消息成为全局消息。

为了在Struts 1中实现相同效果:

在表单验证方法中,我使用了以下方法:

ActionErrors errors = new ActionErrors();       
if(userName != null && userName.length() <= 0)
    errors.add("userName",new ActionError("error.userName.required"));
Run Code Online (Sandbox Code Playgroud)

并在用户界面中显示消息:

<html:messages id="userName" property="userName">
    <bean:write name="userName"/>
</html:messages>
Run Code Online (Sandbox Code Playgroud)

在Struts 2中,如果我扩展Action类ActionSupport并使用它:

addActionError(getText("Please enter UserId"));
Run Code Online (Sandbox Code Playgroud)

然后,这似乎是一条全局消息,可以使用以下命令在UI中显示:

<s:actionerror />
Run Code Online (Sandbox Code Playgroud)

因此,不确定如何在Struts 2中实现相同的功能。请让我知道这一点。

java struts struts2 web

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

Struts 2 - 选择默认值

我有两个选择这样:

<s:select label = "Pays " list="payss" key="pays" value="%{FRANCE}"></s:select>
<s:select label = "Categorie " list="categories" key="categorie" value="%{200}">/s:select>
Run Code Online (Sandbox Code Playgroud)

第二个默认值有效,但第一个不是,列表是这样的:

payss:

  1. 法国
  2. BELGIQUE

categories:

  1. 200
  2. 300

java jsp struts2 ognl java-ee

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

找不到GroovyEvaluator

我将尝试在iReport中创建我的PIE 3D报告,在我的struts.xml中,我可以用它来调用我的报告。

<action name="cargaReporte" 
        class="com.techera.eventos.action.MisVisitasAction" 
        method="cargaReporte">              
    <result name="success" type="jasper">
        <param name="location">/WEB-INF/jsp/reportes/reporteMisVisitas.jasper</param>
        <param name="dataSource">visitas</param>
        <param name="format">PDF</param>
    </result>
</action>
Run Code Online (Sandbox Code Playgroud)

在我的jsp中我得到了

<a href="cargaReporte">Reporte</a>
Run Code Online (Sandbox Code Playgroud)

当我单击链接时,错误是这样的

java.lang.ClassNotFoundException: net.sf.jasperreports.compilers.GroovyEvaluator
    at java.lang.ClassLoader.findClass(ClassLoader.java:522)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
        ...
Run Code Online (Sandbox Code Playgroud)

有人告诉我我该怎么办?

我使用这些库:

groovy-all-1.7.5.jar

  • iText-2.1.7.jar
  • jasperreports-4.5.0.jar
  • jcommon-1.0.15.jar
  • jfreechart-1.0.12.jar
  • struts2-jasperreports-plugin-2.3.1.1.jar
  • struts2-jquery-chart-plugin-3.3.1.jar

java struts2 jasper-reports ireport eclipse-juno

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