【问题标题】:How to call Class method in JSP?如何在 JSP 中调用 Class 方法?
【发布时间】:2019-09-27 02:00:46
【问题描述】:

我知道这个问题已经被问过很多次了,我检查了以前的问题,没有一个适合我的需要。我是 JSP 的新手,但我是一位老牌 Java 开发人员。 我googled 谈到了从JSP file 进行网络调用的不同方式,但是由于JSP 是Java 的后代,我想利用这个优势并做出完全不同的事情,我已经使用Retrofit 进行网络调用rxJava

我做了一个接口类

public interface APIService {
  @GET("getprofiles")
  Single<List<UserProfileRole>> getProfileRoles();
}

Retrofit 初始化器类

public class RetrofitService {

  public static Retrofit getRetrofit() {

    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
    OkHttpClient client = new OkHttpClient.Builder()
            .connectTimeout(15, TimeUnit.SECONDS)
            .readTimeout(15, TimeUnit.SECONDS)
            .addInterceptor(interceptor)
            .build();

    return new Retrofit.Builder()
            .baseUrl(Constants.API)
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .client(client)
            .build();
   }
}

最后是NetworkCallManager

public class NetworkCallManager {

  public static Single<List<UserProfileRole>> getAllUserProfiles(){
    List<UserProfileRole> mUserProfileRoles = new ArrayList<>();
    APIService service = RetrofitService.getRetrofit().create(APIService.class);
    return service.getProfileRoles();
  }
}

我的想法是调用返回SingleNetworkCallManager.getAllUserProfiles() 方法,所以在我的JSP 中我会执行类似的操作

<%@ page import="manager.NetworkCallManager" %>
<%@ page import="java.util.List" %>
<%@ page import="models.UserProfileRole" %>
<%@ page import="io.reactivex.SingleObserver" %>
<%@ page import="io.reactivex.disposables.Disposable" %><%--
Document   : newuserprofiletype
Created on : May 6, 2019, 4:12:01 PM
Author     : aubry
--%>

 <%@page contentType="text/html" pageEncoding="UTF-8"%>
<%!

NetworkCallManager.getAllUserProfiles()
    .subscribe(new SingleObserver<List<UserProfileRole>>() {

      @Override
      public void onSubscribe(Disposable disposable) {
      }

      @Override
      public void onSuccess(List<UserProfileRole> userProfileRoles) {
        //Set result to page
      }

      @Override
      public void onError(Throwable throwable) {
      }
    });

%>

我唯一的问题是当我打电话给NetworkCallManager.getAllUserProfiles() intelliJ 给我一个Cannot resolve symbol getAllUserProfiles 但是当我输入ManagerCallManager. intelliJ 时甚至自动完成。 如何解决该函数?

【问题讨论】:

    标签: java jsp retrofit2 rx-java2


    【解决方案1】:

    这个解决方案令人心碎,所以原来我使用了错误的标签

    `

    而不是

    <% My code here %>

    现在我的代码可以工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      • 2012-03-22
      • 2011-01-22
      • 2014-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多