struts2.5 jdk1.6 2.5.10必须使用jdk1.7以上版本吗

1898人阅读
Android(14)
& & & &AndroidStudio到目前为止的最新版是2.1.2(基于书写本博客时间),在最新版本的环境下创建的Android工程默认必须是用JDK1.8,对于不想使用JDK1.8或者其他原因无法使用JDK1.8的情况下如何使新建的工程完美匹配JDK1.7呢?步骤如下:
修改compileSdkVersion为23(或其他小于24的版本除了23其他的有待验证)修改buildToolsVersion为23.0.3(或其他小于24的版本除了23.0.3其他的有优待验证)修改targetSdkVersion为23(或其他小于24的版本除了23其他的有待验证)修改compile 'com.android.support:appcompat-v7:24.2.0'为compile 'com.android.support:appcompat-v7:23.2.0'
经过以上修改工程就可以在JDK1.7上完美运行起来了
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:38685次
积分:1785
积分:1785
排名:第19590名
原创:50篇
评论:386条
邮箱:mufeng_
文章:15篇
阅读:9722
文章:31篇
阅读:25774
(7)(7)(18)(2)(3)(1)(2)(6)(2)(2)博客访问: 119438
博文数量: 42
博客积分: 420
博客等级: 下士
技术积分: 457
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Web开发
1、先看最后想要的效果,如下截图:
2、在运行过程中出现的问题结果:
HTTP Status 404 - There is no Action mapped for namespace [/] and action name [jsontest!returntotal] associated with context path [/UserTable].
type&Status report
message&There is no Action mapped for namespace [/] and action name [jsontest!returntotal] associated with context path [/UserTable].
description&The requested resource is not available.
Apache Tomcat/7.0.47
并且在控制台会打印出java出现的错误:
十二月 21, :10 下午 com.opensymphony.xwork2.monsLogger warn
WARNING: Could not find action or result: /UserTable/jsontest!returntotal
There is no Action mapped for namespace [/] and action name [jsontest!returntotal] associated with context path [/UserTable]. - [unknown location]
&at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185)
&at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
&at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:37)
&at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
&at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:552)
&at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
&at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
&at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
&at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
&at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
&at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
&at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
&at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
&at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
&at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
&at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
&at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
&at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
&at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
&at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
&at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
&at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
&at java.lang.Thread.run(Unknown Source)
&3、出现这样的问题是由于在struts2.3.16版本中,需要在struts.xml文件中添加相应的选项,如下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">
&&&&<!--constant name="struts.configuration.xml.reload" value="true" /-->
&&&&<!--在struts2.3版本中必须要加上善变那句话开发者模式才会生效 -->
&&&&<!--constant name="struts.devMode" value="true" /-->
&&&&<!--设置成开发模式,如果value为true则说明当修改文件之后立刻生效 -->
&&&&<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
&&&&<constant name="struts.convention.action.mapallmatches" value="true"/>
&&&&<package name="default" namespace="/" extends="json-default">
&&&&&&&&<action name="jsontest" class="com.UserTable.UserInfo">
&&&&&&&&&&&&<result name="success" type="json"></result>
&&&&&&&&</action>
&&&&</package>
4、在配置文件中需要加上这一项才可以访问:,这个方法也是从其他人的博客看的:
下边是我的web.xml文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="/xml/ns/javaee" xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
&&<display-name>UserTable</display-name>
&&<filter>
&&&&&&<filter-name>struts2</filter-name>
&&&&&&<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
&&</filter>
&&<filter-mapping>
&&&&&&<filter-name>struts2</filter-name>
&&&&&&<url-pattern>/*</url-pattern>
&&</filter-mapping>
&&<welcome-file-list>
&&&&<welcome-file>index.jsp</welcome-file>
&&</welcome-file-list>
</web-app>
5、下边是User类文件
package com.userInfo;
public class User {
&&&&private String name;
&&&&private String email;
&&&&private int age;
&&&&public User(String name,String email,int age){
&&&&&&&&setName(name);
&&&&&&&&setEmail(email);
&&&&&&&&setAge(age);
&&&&public void setName(String name){
&&&&&&&&this.name=name;
&&&&public void setEmail(String email){
&&&&&&&&this.email=email;
&&&&public void setAge(int age){
&&&&&&&&this.age=age;
&&&&public String getName(){
&&&&&&&&return name;
&&&&public String getEmail(){
&&&&&&&&return email;
&&&&public int getAge(){
&&&&&&&&return age;
6、UserInfo类文件
package com.UserTable;
import java.util.*;
import com.userInfo.*;
import com.opensymphony.xwork2.ActionSupport;
public class UserInfo extends ActionSupport {
&&&&private Set<User> Info;
&&&&public Set<User> gettotal() {
&&&&&&&&return Info;
&&&&public void settotal(Set<User> Info) {
&&&&&&&&this.Info = Info;
&&&&public String returntotal(){
&&&&&&&&Info=new HashSet();
&&&&&&&&User user1=new User("sxj","",26);
&&&&&&&&User user2=new User("jdd","",25);
&&&&&&&&User user3=new User("lyf","",25);
&&&&&&&&User user4=new User("why","",25);
&&&&&&&&User user5=new User("zys","",25);
&&&&&&&&User user6=new User("cyy","",25);
&&&&&&&&User user7=new User("zwh","",25);
&&&&&&&&User user8=new User("zm","",25);
&&&&&&&&User user9=new User("wrl","",25);
&&&&&&&&User user10=new User("wjy","",25);
&&&&&&&&Info.add(user1);
&&&&&&&&Info.add(user2);
&&&&&&&&Info.add(user3);
&&&&&&&&Info.add(user4);
&&&&&&&&Info.add(user5);
&&&&&&&&Info.add(user6);
&&&&&&&&Info.add(user7);
&&&&&&&&Info.add(user8);
&&&&&&&&Info.add(user9);
&&&&&&&&Info.add(user10);
&&&&&&&&return "success";
7、以上是我的相关文件,下面是我包含的struts包:
asm-3.3.jar,asm-commons-3.3.jar,asm-tree-3.3.jar,commons-beanutils-1.8.0.jar,commons-fileupload-1.3.1.jar,commons-io-2.2.jar,
commons-lang3-3.1.jar,commons-logging-api-1.1.jar,ezmorph-1.0.6.jar,freemarker-2.3.19.jar,javassist-3.11.0.GA.jar,json-lib-2.3-jdk15.jar,ognl-3.0.6.jar,struts2-core-2.3.16.1.jar,struts2-json-plugin-2.3.16.1.jar,xwork-core-2.3.16.1.jar
8、对以下字符串的说明
{"total":[{"age":25,"email":"","name":"cyy"},{"age":25,"email":"","name":"lyf"},{"age":25,"email":"","name":"zm"},{"age":25,"email":"","name":"zwh"},{"age":25,"email":"","name":"zys"},{"age":25,"email":"","name":"why"},{"age":25,"email":"","name":"wrl"},{"age":26,"email":"","name":"sxj"},{"age":25,"email":"","name":"wjy"},{"age":25,"email":"","name":"jdd"}]}
&&&&(1)首先是total,这个total是有UserInfo类中的两个方法决定的,如下代码,就是在settotal和gettotal方法中的:total来决定的注意:在类中必须要有set和get方法才可以正常返回,否则会返回空
public Set<User> gettotal() {
&&&&&&&&return Info;
&&&&public void settotal(Set<User> Info) {
&&&&&&&&this.Info = Info;
&&&&&&&&(2){"age":25,"email":"","name":"cyy"},该字符串说明是一个对象,不如在reeturntotal方法中new了一个对象,那么new一个对象在通过json返回这个对象后就是这个字符串,那么其中age、email、name也同样对应一个setAge、setEmail、setName和getAge、getEmail、getName,age、email、name就是这些方法的后缀,然后冒号就相当于值了,如果是字符串则会有一个引号,整型是不需要引号的。
&&&&&&&&(3)[{"age":25,"email":"","name":"cyy"},....],该字符串表示的是一个数组对象或者是一个对象数组(不好意思忘记了),就这样理解好了,在数组里包含了多个对象,而在对象里又包含了多个值,那么这个数组就是Set方法,这个Set通过json返回回来就是一个数组对象。
阅读(7178) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。

我要回帖

更多关于 struts2.5 jdk1.6 的文章

 

随机推荐