struts2

Struts2 jQuery UI dynamic Menu from Action List

谁说我不能喝 提交于 2020-04-30 07:50:21
问题 How can I generate dynamic menu & menu items from a list generated at Action? I tried this approach but it is generating only main menu but not sub-menus. Action class: private List<String> menuList = new ArrayList<String>(); public String execute(){ menuList.add("Menu1"); menuList.add("Menu2"); menuList.add("Menu3"); menuList.add("Menu4"); return "success"; } public List<String> getMenuList() { return menuList; } public void setMenuList(List<String> menuList) { this.menuList = menuList; }

Struts2接收数组时需要注意的问题

左心房为你撑大大i 提交于 2020-04-22 03:55:49
当表单中存在数组时(假定依次输入了1,2,3): <form> <input type="text" name="param"/> <input type="text" name="param"/> <input type="text" name="param"> <input type="submit"/> </form> 表单提交传递的字符串为:param=1&param=2&param=3 传统的Servlet只能接收数组中第一个参数。 publicclass ServletA extends HttpServlet { publicvoid doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println(request.getParameter("param")); } } Struts2则能接收多个参数并自动填充数组。 publicclass A { private String param[]; public String[] getParam() { returnparam; } publicvoid setParam(String[] param) { this.param = param

struts2 接收表单传递来的参数

浪尽此生 提交于 2020-04-22 02:11:23
这个 strtus2 是通过 反射机制来实现 表单传递值给action 的.. 而且 action中的setter 方法和getter 方法要和 表单中的name属性相同(约定写的那种,比如: 你的表单传递来的参数名是 age ,那么你的action 中写的参数要写成 setAge(xxx xx) getAge(), 你写的那个字段可 以 和表单传递来的参数名不一样。。。 例如: int userage; setAget(int userage){ this.userage = userage; } 只要你的setter和getter 和 表单传递来的参数名是 age 写成它的getter和setter相同就ok 啦!!!! (一般我们要IDE 直接帮我们生成了setter和getter方法,所以 就把action中的字段写和表单传来的参数名称相同了) action中一定有一个无参的构造方法,(如果你不写构造方法的话, 系统默认 一个无参的构造方法,如果你只写有参, 而没有写无参构造方法,启动tomcat 会出现错误,就是 初始化错误(我启动tomcat的错误就是这个问题), 所有你写了一个有参构造方法,你也得写个无参的构造方法。) 只是一名 初学者,学艺不精,还望不要吐槽!!! 来源: oschina 链接: https://my.oschina.net/u/1394615

Spring-Security PasswordEncoder returns null

蓝咒 提交于 2020-04-11 16:26:11
问题 I have implemented Spring security on my struts2 application and it perfectly works, but it runs into error java.lang.NullPointerException on line 3. Although it seems passwordEncoder configuration works as by adding those I cant login with a plain text password any more. <authentication-manager> <authentication-provider> <password-encoder ref="passwordEncoder"/> <jdbc-user-service data-source-ref="dataSource" users-by-username-query=" select username,password,enabled from Users where

struts2(三)——Ognl 与值栈

牧云@^-^@ 提交于 2020-04-05 16:10:46
什么是OGNL OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。 OGNL与EL表达式对比 OGNL对象图导航语言,比EL表达式强大很多倍的语言 EL表达式只能从域中获取数据 OGNL可以调用对象的方法,获取struts的值栈的数据。 OGNL是第三方的表达式语言,用它来获取struts中值栈的数据 OGNL功能 支持运算符(如+-*/) 支持对象方法调用,如xxx.doSomeSpecial(); 支持类静态的方法调用和值访问 支持赋值操作和表达式串联 访问OGNL上下文 操作集合对象 可以直接new一个对象 OGNL使用要素 表达式 根对象 Context对象(非根对象) OGNL入门 OGNL核心OgnlContext,本质就是一个map java程序使用ognl @Test public void test(){ OgnlContext ognlContext = new OgnlContext(); ognlContext.setRoot("aaa"); Object obj = Ognl.getRoot(ognlContext); System.out.println(obj); }

Struts2框架(2)

大兔子大兔子 提交于 2020-04-02 10:27:43
执行流程: 拦截器: 不建议使用,还需实现init和destroy方法 建议使用,只需实现intercept 实例演戏计算Action的执行时间: web.xml配置struts2的核心控制器,本质上也是一个过滤器: struts.xml文件,定义好拦截器配置、action对应的jsp页面以及action调用拦截器进行拦截: 所配置的action文件、做一个循环,让执行时间具有可观性: 拦截器的定义: 这里的result也就是执行Action后的结果视图;拜访Timer.action后会跳转到seccess.jsp并在后台显示: Struts2中有很多内置的拦截器: 还有很多很多的内建拦截器,可以在struts2的jar包中里有个struts2-core-x.x.xjar中的struts-default.xml文件中查看; 如果我们显性地指定了某个拦截器后还想用默认拦截器,那就要进行手工的引用了,最好的把默认拦截器引用在自定义拦截器之前: 来源: https://www.cnblogs.com/lzj-learn/p/12606989.html

[ SSH框架 ] Struts2框架学习之三(OGNL和ValueStack值栈学习)

泄露秘密 提交于 2020-04-02 05:24:49
一、OGNL概述 1.1 什么是OGNL   OGNL的全称是对象图导航语言( object-graph Navigation Language),它是一种功能强大的开源表达式语言,使用这种表达式语言,可以通过某种表达式语法,存取Java对象的任意属性,调用Java对象的方法,同时能够自动实现必要的类型转换。如果把表达式看作是一个带有语义的字符串,那么OGNL无疑成为了这个语义字符串与Java对象之间沟通的桥梁。 1.2 OGNL的作用    Struts2默认的表达式语言就是OGNL,它具有以下特点:   ● 支持对象方法调用。例如: objName. methodName( )。   ● 支持类静态方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[ 方法名|值名 ]。例如:@ java.lang.String@format("foo%s","bar")。   ● 支持赋值操作和表达式串联,例如: price=100, discount=0.8, calculateP rice( ),在方法中进行乘法计算会返回80   ● 访问OGNL上下文( OGNL context)和 ActionContext。   ● 操作集合对象。 1.3 OGNL的要素 了解了什么是 OGNL及其特点后,接下来, 分析一下 OGNL的结构。OGNL的操作实际上就是 围绕着

[JavaWeb基础] 007.Struts2的配置和简单使用

自作多情 提交于 2020-04-01 08:54:30
1.框架简介 采用 Struts能开发出基于 MVC(Model-View-Controller)设计模式的应用构架,用于 快速开发Java Web应用。Struts实现的重点在 C(Controller),包括ActionServlet/RequestProcessor和我们定制的 Action,也为V(View)提供了一系列定制 标签(Custom Tag)。但Struts 几乎没有涉及M(Model),所以 Struts可以采用JAVA实现的任何形式的 商业逻辑 。。目前为止,有 Struts1和 Struts2,用户可以根据自己的需求进行选择。 2.所需的lib包 可以去网上下载所有Struts需要的包,我这边是基于 struts-2.3.24-all的。有以下的包:struts2-core-2.3.24,xwork-core-2.3.24,ognl-3.0.6,freemarker-2.3.22,commons-logging-1.1.3,commons-fileupload-1.3.1,commons-io-2.2 把这些包放置到WebRoot/WEB-INF/lib下面. 3.首先创建Action package com.babybus.sdteam.action; import java.util.List; import com.babybus.sdteam.bo

Struts2之Json插件的使用

☆樱花仙子☆ 提交于 2020-04-01 05:14:57
时间:2017-1-15 02:27 ——普通方式处理异步请求: ServletActionContext.getResponse().getWriter().print("aa"); ——Struts2中怎样处理异步请求 1、步骤: 1)导入json插件包:struts2-json-plugin-2.3.15.1.jar 这个jar包中有一个struts-plugin.xml,其中的package继承了struts-default.xml: <package name="json-default" extends="struts-default"> 2)继承json-default 以后struts.xml继承json-default即可: <package name="default" namespace="/" extends="json-default"> 3)定义视图 在json的jar包中定义了一个视图: <result-types> <result-type name="json" class="org.apache.struts2.json.JSONResult"/> </result-types> 在struts.xml中设置视图: <action name="AjaxDemo2" class="com.wyc.action.AjaxDemo2Action">

常规web***测试漏洞描述及修复建议

别来无恙 提交于 2020-03-30 21:06:39
Apache样例文件泄漏 测试方法   在链接的根目录中添加examples或者docs目录进行访问判断! 漏洞描述  apache一些样例文件没有删除,可能存在cookie、session伪造,进行后台登录操作 修复建议  1、删除样例文件  2、对apache中web.xml进行相关设置 弱口令 测试方法   先手工尝试一些最基本的弱口令,如admin/admin、admin/123456、admin/888888等,如果不行,使用暴力破解工具进行暴力破解,如使用burpsuite,另外推荐一个小技巧,使用暴力破解的时候,弱口令使用2到3个常见的,然后用户名使用人名拼音top500! 漏洞描述   由于系统中存在有弱口令,导致***者通过弱口令可轻松登录系统中,从而进行下一步的***,如上传webshell,获取敏感数据!   另外***者利用弱口令登录网站管理后台,可任意增删改等操作,从而造成负面影响! 修复建议   1、 建议强制用户首次登录时修改默认口令,或是使用用户自定义初始密码的策略;   2、 完善密码策略,信息安全最佳实践的密码策略为8位(包括)以上字符,包含数字、大小写字母、特殊字符中的至少3种。   3、对管理后台进行访问控制,修改后台弱口令,加强口令强度并定期修改。   4、增加验证机制,防爆破机制,限制ip+cookie访问次数。 明文传输登录口令