Groovy, Netbeans и Java EE

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

import React, {Component} from 'react';
import GroupItem from './components/GroupItem'
import SearchBar from './components/SearchBar'

class App extends Component {

  state = {
    views: [
        {
            name: 'Testname',
            description: 'testbeschreibung',
            status: 'ok'
        },
        {
            name: 'Ein Anderer Titel',
            description: 'lorem ipsum',
            status: 'ok'
        }
    ],
    commands: [
        {
            name: 'Wieder etwas',
            description: 'testbeschreibung',
            status: 'ok'
        }
    ],
    search : []
}

handleSearchFill = (data) =>{
  this.setState({search:data})
}


render()
{
    return (
        <div>
            <SearchBar searchFill={this.handleSearchFill}/>
            <h2>Views </h2>
            {this.state.views.map((view) => (<GroupItem data={view} type={'view'} />))}
            <h2>Commands</h2>
            {this.state.commands.map((command) => (<GroupItem data={command} type={'command'} />))}
        </div>
    );
}
}

export default App;


import React, {Component} from 'react';

class SearchBar extends Component {

    callApi(){
        let search = this.refs.search.value;
        fetch('http://my-awesome.api/'+search)
            .then((result) => {
                this.props.searchFill(result.json());
            }).then((jsonResult) => {
            console.log(jsonResult);
        })
    }

    render() {
        return (
            <div class="input-group mb-3" id="search">
                <input type="text" class="form-control" ref="search" placeholder="URL" aria-label="URL" />
                    <div class="input-group-append">
                        <button class="btn btn-outline-secondary" type="button" onClick={() => this.callApi()}>Search</button>
                    </div>
            </div>
        );
    }
}

export default SearchBar;
8
задан José Leal 6 January 2009 в 11:03
поделиться

2 ответа

Кажется, что менеджер проектов NetBeans 6.5 Java Веб-приложения не имеет, "Включают Groovy" поддержка, которая присутствует в проектах Библиотеки приложения и Библиотеки классов Java Java.

Я могу думать о двух способах, которыми Вы могли бы обойти это:

Во-первых, Вы могли поместить свой код Groovy и тесты в отдельном проекте как Библиотека классов Java. Затем сделайте веб-приложение Java зависящим от проекта Groovy. NetBeans разработает зависимый проект автоматически, таким образом, Вы едва заметите, что они находятся в отдельных проектах.

Во-вторых, "Включают Groovy", не является волшебным. Все, что это делает, записать groovy-build.xml в/nbprojects и изменить build-impl.xml для импорта его. groovy-build.xml переопределяет значение по умолчанию "javac" макрос для вызова "groovyc" вместо этого. Если Вы вообще удобны с Муравьем, Вы могли бы скопировать groovy-build.xml с проекта JAVA-приложения и скопировать его в Ваш веб-проект Java и затем импортировать его из Вашего build.xml (прежде чем build-impl.xml будет импортирован). Для groovy-build.xml были бы, вероятно, нужны несколько тонких настроек, поскольку некоторые свойства между веб-приложением и библиотекой классов немного отличаются.

5
ответ дан 5 December 2019 в 17:42
поделиться

@Dave Smith,

Это было точно, что я сделал. Я создал один javase проект и одно веб-приложение и начал сравнивать их. После нескольких минут я понял, что единственным различием был groovy-build.xml.

Таким образом, я скопировал groovy-build.xml в dir и вставил следующие строки в мой build.xml:

<import file="nbproject/groovy-build.xml"/>

Прямо перед постоянным клиентом

<import file="nbproject/build-impl.xml"/>

И затем названный отличным файлом для перезаписи-init-macrodef-javac.

<target depends="-groovy-init-macrodef-javac" name="-pre-compile">

</target> 

Я также должен был изменить пространство имен от groovy-build.xml до моего исключая:

<macrodef name="javac" uri="http://www.netbeans.org/ns/web-project/2"> 

И вставленный j2ee путь к классу ($ {j2ee.platform.classpath}) к атрибуту несколько строк позже:

<attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/> 

После этого проект работал успешно!=D

Спасибо за все!

5
ответ дан 5 December 2019 в 17:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: