Возможен ли чистый javascript-фреймворк для проектов J2EE? - PullRequest
2 голосов
/ 09 ноября 2011

Я работаю в области j2ee уже несколько лет и устала писать все те функции AJAX, которые загружают некоторые данные со стороны сервера и рендерит на стороне клиента.

Возможно ли тольконапишите javascript-коды, которые выполняются как на стороне сервера, так и на стороне клиента. Например,

, если мне нужно разработать страницу входа в систему, я могу написать фрагмент кода примерно так:

ОРИГИНАЛЬНЫЙ КОД:

remote checkPassword;


function checkPassword(username, password){
    if(existsRecord("select 1 from staff_t where user_name=? and password=?",username, password))
        return true;
    return false;
};

var main(){
    var userName=$("username").val();
    var password=$("password").val();
    if(checkPassword(userName,password))
        alert("Welcome, "+ user);
    }else{
        alert("sorry, wrong username or password.");
    }
}

В приведенном выше коде javascript напрямую получает данные из dababase, не так ли яснее и проще для понимания?

Хотя этот код на самом делеработает в производственном режиме, он разделен двигателем на две части:

СТОРОНА:

function checkPassword(username, password){
    if(existsRecord("select 1 from staff_t where user_name=? and password=?",username, password))
        return true;
    return false;
};

СТОРОНА КЛИЕНТА:

    var userName=$("username").val();
    var password=$("password").val();
            // 'checkPassword' has been translated to an AJAX function.
    if(checkPassword(userName,password))  
        alert("Welcome, "+ user);
    }else{
        alert("sorry, wrong username or password.");
    }

Таким образом, мы можем использовать один кусок кода для одного бизнеса, не разделяя их на java и javascript.Движок разделит код и определит, какие части должны выполняться на сервере, а другие - в браузерах.

Я искал во всем Интернете, но не нашел ни одной подобной структуры, которая могла бы обеспечить доступ к базе данных./EJB/WEBSERVICE.

Google Web Toolkit (GWT) позволяет нам писать чистый код JAVA для приложения на основе браузера, но мне это кажется немного неуклюжим.:)

Rhino - это движок javascript, работающий на проектах j2ee, но он не предоставляет никаких средств для доступа как к данным на стороне клиента, так и к данным на стороне сервера.

Кто-нибудь знает такую ​​структуру, или же ее можно разработать самостоятельно?в чем плюсы и минусы?

спасибо.

Ответы [ 2 ]

1 голос
/ 19 сентября 2012

Ленивое решение этой проблемы заключается в использовании сред, которые имеют прямую связь между представлением пользовательского интерфейса и объектной моделью сервера.Это значительно облегчает написание проверки только на стороне сервера: вы просто указываете код проверки на Java.AJAX делает эту проверку доступной на стороне клиента автоматически (до того, как на самом деле произошла отправка!)

Если подумать, пример пароля очень минимален.В большинстве случаев проверки требуется больше кода и даже больше данных.Предположим, вы проверяете адрес пользователя, используя географическую базу данных;вы будете выдвигать эту полную базу данных на стороне клиента?Нет, вы отправляете адрес на сервер с помощью AJAX и отображаете результат проверки пользователю в реальном времени.

JSF использует этот подход довольно хорошо (RichFaces, ICEFaces ...)

1 голос
/ 09 ноября 2011

Можно ли писать только коды JavaScript, которые выполняются как на стороне сервера, так и на стороне клиента.

Конечно, отбросьте J2EE и присоединитесь к node.js сообщество

Что касается рамок, нет.Вы не можете волшебным образом общаться между ними.Лучшее, что я видел, это автоматизированный RPC, такой как nodeQuery , где сервер отправляет клиенту команды DOM через RPC.

В качестве альтернативы, кому нужен сервер, когда вы можете написать couchapps и обслуживайте HTML прямо из вашей базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...