Класс String
является неизменным и не имеет установки для значения. Геттер - это в основном метод Object#toString()
.
Вам нужно получить / установить значение непосредственно на List
. Вы можете сделать это по индексу списка, доступному по <ui:repeat varStatus>
.
<ui:repeat value="#{mrBean.stringList}" varStatus="loop">
<h:inputText value="#{mrBean.stringList[loop.index]}" />
</ui:repeat>
Вам также не нужен сеттер для stringList
. EL получит элемент List#get(index)
и установит элемент на List#add(index,item)
.
Нет выбора. .NET Standard предназначен только для библиотек классов .NET. Это не среда выполнения, поэтому нельзя создавать приложения, нацеленные на нее. Средами выполнения являются .NET Core и .NET Full framework.
.NET Core - единственный кроссплатформенный вариант.
ASP.NET Core сам по себе является веб-стеком, который может работать в обеих средах выполнения. Вы можете выбрать тот, который вы хотите в диалоговом окне New Project
.
Когда дело доходит до библиотек, выбор зависит от того, что нужно. Стандартные библиотеки .NET могут предназначаться для любой совместимой среды выполнения. Собственные библиотеки классов Razor в ASP.NET Core являются проектами .NET Standard 2.0. Большинство пакетов NuGet совместимы со стандартом .NET, чтобы избежать хлопот упаковки разных версий для каждой среды выполнения.
С другой стороны, последние функции, связанные с Span, появляются только в .NET Core 2.1 и более поздних версиях. Они недоступны в .NET Standard 2.0 , но они появятся в 2.1. Этот пример из All About Span: Изучение нового .NET Mainstay будет работать только в .NET Core 2.1+:
string input = ...;
ReadOnlySpan<char> inputSpan = input;
int commaPos = input.IndexOf(',');
int first = int.Parse(inputSpan.Slice(0, commaPos));
int second = int.Parse(inputSpan.Slice(commaPos + 1));