Несворачивание, но все еще (строка-) вскрываемое пространство в HTML?

Вам нужно поместить все / компоненты в и привязать их атрибут value к свойству bean через выражение EL, например #{bean.property}, поддерживаемое парой getter / setter. При правильной установке JSF автоматически устанавливает значения в компоненте, когда форма отправляется через компонент в той же форме. Вы можете указать метод действия компонента в атрибуте action компонента через выражение EL, подобное #{bean.action}, которое указывает на голый метод action(). Все представленные значения доступны прямо там обычным способом Java.

Учитывая этот пример формы JSF с одним полем ввода и одним полем выбора:


    
    
        
        
        
        
    
    
    
    

Следующий компонент распечатывает предоставленные значения в stdout, доказывая, что JSF уже установил значения задолго до момента доступа к нему в методе действий.

package com.example;

import javax.inject.Named;
import javax.enterprice.context.RequestScoped;

@Named // Use @javax.faces.bean.ManagedBean on outdated environments.
@RequestScoped // Use @javax.faces.bean.RequestScoped on outdated environments.
public class Bean {

    private String text;
    private String choice;
    private String result;

    public void submit() {
        result = "Submitted values: " + text + ", " + choice;
        System.out.println(result);
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

    public String getChoice() {
        return choice;
    }

    public void setChoice(String choice) {
        this.choice = choice;
    }

    public String getResult() {
        return result;
    }
}

Вот и все. Поворот регулярной формы в форму ajax - это вопрос о вложении в командном компоненте, как показано ниже.


    

Вы можете найти другой пример и ценные ссылки внизу нашего JSF wiki page .

Обратите внимание, что все, что вы намерены делать с представленными значениями, несут ответственность JSF. Например, манипулируя им, переходя в другой класс, сохраняя его в базе данных и т. Д. Все это не связано с JSF. Он как платформа, основанная на HTML-формах, уже выполнила свою работу по предоставлению вам представленных значений в удобстве использования переменных Java. Остальное зависит от вас.

Чтобы исследовать следующий шаг, вы должны в этот момент просто делать так, как будто у вас уже есть куча готовых / жестко закодированных переменных, а не весь пользовательский интерфейс на основе JSF. Например, чтобы сохранить значения в базе данных, люди обычно используют инфраструктуру уровня бизнес-сервисов, такую ​​как EJB, которая, в свою очередь, использует инфраструктуру уровня сохранения, такую ​​как JPA. Некоторые люди даже используют JDBC «простой ваниль». Для получения дополнительных ссылок на конкретные примеры, начните здесь: JSF-контроллер, служба и DAO .

17
задан Thilo 3 March 2009 в 08:21
поделиться

8 ответов

Что относительно одного или нескольких длинных пробелов (& emsp;)? Предоставленный, это зависело бы от того, каков размер шрифта пользователя. Если это действительно не работает в Вашем дизайне, рассмотрите короткий пробел (& ensp;).

Вы могли бы также хотеть посмотреть эта таблица различных пробелов на Википедию.

12
ответ дан 30 November 2019 в 06:51
поделиться

Не будет пространство между двумя неразрывными работами пробелов?

& nbsp; & nbsp;

4
ответ дан 30 November 2019 в 06:51
поделиться

Как насчет < wbr> ?

3
ответ дан 30 November 2019 в 06:51
поделиться

Если Вы не IE предназначения (кроме 8, режим стандартов):

<span style="white-space: pre-wrap">   </span>

Для IE, <span style="width:3ex"></span> работы в режиме причуд, поэтому объедините их и...

<span style="width:3ex;white-space:pre-wrap">   </span>

, который, кажется, работает везде, я попробовал... кроме стандартов IE7. D'oh!

3
ответ дан 30 November 2019 в 06:51
поделиться

Как насчет два &nbsp; сопровождаемый регулярным пространством? Единственный недостаток к тому (насколько я знаю) - то, что, если разрыв строки действительно естественно падает на регулярное пространство, у Вас будет немного конечного пробела на предыдущей строке из-за неразрывных пробелов, но я не думаю, что это когда-либо имело бы значение в фактическом появлении страницы.

2
ответ дан 30 November 2019 в 06:51
поделиться

это дает 100px в левое пространство между вашим текстом пример пробелов

span style = "margin-left: 100px;"

(n_n)

-1
ответ дан 30 November 2019 в 06:51
поделиться

Могло бы быть лучше предпринять шаги назад и спросить, что это, Вы пытаетесь представить. Что показывает это общедополнительное пространство?

0
ответ дан 30 November 2019 в 06:51
поделиться

У меня есть точный ответ, который вы ищете. Я везде искал этот ответ, и никто из предложенных не работал идеально. Итак, я придумал решение, попробовал его и был поражен тем, что оно работает без каких-либо изъянов!

Гарроу был на самом деле прав (он просто не объяснил и не усвоил это полностью). Решение состоит в том, чтобы вместо одного & nbsp; указать & nbsp; . Просто выполните простой поиск, замените и добавьте тег после каждого & nbsp; . Работает отлично!

Тег - это малоизвестный тег, поддерживаемый во всех основных браузерах, который сообщает браузеру помещать здесь новую строку ТОЛЬКО, если это необходимо.

Обновление: я обнаружил один браузер, в котором это не работает точно - IE 8! Они действительно удалили тег ! Я решил эту проблему, создав класс, который говорит:

.wbr:before { content: "\200B" }

и вместо замены & nbsp; на & nbsp; , замените его следующим:

&nbsp;<wbr><span class='wbr'></span>

В PHP , это будет выглядеть так:

$text = str_replace(" ","&nbsp;<wbr><span class='wbr'></span>", $text);

Не забудьте также добавить класс.

Очевидно, это становится немного излишним, заменяя один пробел всем этим, но это работает так же, как и нужно, и поскольку Я никогда не видел разметки, которая у меня работала.

Если это слишком беспорядочно, другое решение - заменить двойные пробелы на & nbsp; , за которыми следует нормальный пробел. Это будет чередовать & nbsp; и обычные пробелы и работает в моих тестах.

В PHP это будет выглядеть так:

$text = str_replace("  ","&nbsp; ", $text);

Надеюсь, это поможет! Я вложил в это достаточно исследований; Я думал, что должен передать это дальше.

21
ответ дан 30 November 2019 в 06:51
поделиться
Другие вопросы по тегам:

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