如何从JSP页面调用Java类? Cloud9& OpenShift JBoss

时间:2016-05-31 20:28:36

标签: jboss openshift cloud9-ide

我是c9的新手。我创建了一个Openshift JBoss应用服务器&通过GitHub导入C9。 我在Main \ Java \ initial.class中有一个简单的Java类。

<HEAD>
    <TITLE>JBossAS7 JSP snoop page</TITLE>
    <%@ page import="javax.servlet.http.HttpUtils,java.util.Enumeration" %>
    <%@ page import="java.lang.management.*" %>
    <%@ page import="java.util.*" %>
    <%@ page import="initial" %>
</HEAD>
<BODY>

<H1>WebApp JSP Snoop page</H1>
<img src="images/jbosscorp_logo.png">

<h2>JVM Memory Monitor</h2>
<input type="text" name="text1" size="100" value="<%=prn%>">

我有一个从index.html调用的jsp页面,我只是想在jsp页面中显示变量'prn'。

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 10 in the generated java file
The import initial cannot be resolved

    An error occurred at line: 15 in the jsp file: /snoop.jsp
    prn cannot be resolved to a variable
    12: <img src="images/jbosscorp_logo.png">
    13: 
    14: <h2>JVM Memory Monitor</h2>
    15: <input type="text" name="text1" size="100" value="<%=prn%>">
    16:  
    17: <table border="0" width="100%">
    18:

但是,我在JSP页面上遇到错误:

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 10 in the generated java file
The import initial cannot be resolved

如何从JSP中与Java类进行交互? 感谢。

编辑由于两个答案: 我认为主要问题是:类'initial'未成功导入。我对Prn的调用是错误的,我现在明白了,但是导入本身并不起作用。 一些人建议将一个类放在一个包中。但Cloud9 IDE没有创建包的选项。

int main(int argc, char** argv) 
{   
    int rank, size;
    DIR *d;
    FILE *fp;
    struct dirent *dir;

    if (argc < 2) {
        error("Ju lutem jepni emrin e file.");
    }

    printf("Fillon kerkimi...\n\n");

    // Initialize the MPI environment.
    MPI_Init(&argc, &argv);

    // Get the number of processes
    MPI_Comm_size(MPI_COMM_WORLD, &size);

    // Get the rank of the process
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);

    if (rank == 0) {
        server();
    } else {
        char str[100];
        sprintf(str, "./%d/%s", rank, argv[1]);

        //if file is found
        if ((fp = fopen(str, "r")) != NULL) {
            char buffer[4096];
            int i=0;
            char c;
            while((c = getc(fp)) != EOF)
            {
                 buffer[i++] = c;
            }
            buffer[i]='\0';

            client(buffer);
        }
    }

    MPI_Finalize();

    return 0;
}

2 个答案:

答案 0 :(得分:0)

如果您尝试这样做:

Java类:

public class Initial {

    public static String getDisp() {
        return "JAVARANCH";
    }
}

JSP文件:

<HEAD>
        <TITLE>JBossAS7 JSP snoop page</TITLE>
        <%@ page import="javax.servlet.http.HttpUtils,java.util.Enumeration" %>
        <%@ page import="java.lang.management.*" %>
        <%@ page import="java.util.*" %>
        <%@ page import="Initial" %>
    </HEAD>
    <BODY>
        <H1>WebApp JSP Snoop page</H1>
        <img src="images/jbosscorp_logo.png">

        <h2>JVM Memory Monitor</h2>
        <input type="text" name="text1" size="100" value="<%=Initial.getDisp()%>">
    </BODY>

答案 1 :(得分:0)

您可以通过添加以下内容从您的jsp访问您的课程。

<input type="text" name="text1" size="100" value="<%= initial.disp() %>">

或在输入之前添加jsp scriptlet

<%    
String prn = initial.disp(); 
%>

<input type="text" name="text1" size="100" value="<%= prn %>">

注意我使用的方法是 disp()而不是 main()。主要是静止无效,没有回报。